input要素のtype属性を変えたい
携帯サイトのパスワード入力フォームで、最後に入力した1文字だけ表示し、他をマスクするというものがあり、面白いなと思ってPCサイト用にJavascriptで作ってみようと思いました。HTML部に
<input type="password" id="pass" />
と書き、初期設定としてJavascript部に
window.onload = function()
{
var input = document.getElementById("pass");
input.type = "text";
input.onkeydown = 実装する関数;
}
と書いています。これはHTMLにイベントハンドラを設定したくない(HTMLとJavascriptを分離させたい)からです。type属性がpasswordだとどうやっても文字は見えないので、textに変えてキーが押されるごとに最後の文字以外をマスクしてvalueに挿入する方法を考えていますが、これがうまくいきません。どうやらtype属性は値を取得することは可能ですが、挿入(置き換え)することはできないようなのです(ここでエラーが起こっているようです)。他に
input.removeAttribute("type");
input.appendAttribute("type", "text");
といったやり方も試してみましたが、うまくいきませんでした。
これは仕様で、どうやっても無理なのでしょうか?
<input type="password" /> を <input type="text" /> に変えれば対処できる問題ですが、Javascript不使用ユーザーにも対応できるようにしたいので、なんとか<input type="password" />形式のまま解決できませんでしょうか?