使いやすさの理由から、ログイン フォームにチェックボックスを追加して、ユーザーがパスワード フィールドのマスキングを切り替えられるようにしたいと考えています。
サンプルコード
このための基本的なコードは次のとおりです (これは簡単なモックアップ コードであり、Chrome Canary 以外ではテストされていません)。
HTML
<input type="password" name="password" id="password" value="somepassword" />
<input type="checkbox" name="unmask" id="unmask" />
JavaScript
var password = document.getElementById('password'),
chkbox = document.getElementById('unmask');
chkbox.addEventListener('click', function (e) {
password.type = e.currentTarget.checked ? 'text' : 'password';
});
JSFiddle
上記の概念は完全にうまく機能しているように見えますが、 jQuery のソース コードtype
で属性を反転するコードを見ると、次のようなコメントが表示されます。
// type プロパティを変更することはできません (IE で問題が発生するため)
これは、StackOverflow の他の場所で見た同様の引用に追加されました...
Microsoft Internet Explorer 5 の時点で、type プロパティは一度だけ読み取り/書き込みが可能ですが、入力要素が createElement メソッドで作成されたとき、およびドキュメントに追加される前に限られます。
...上記のコードが Internet Explorer では使用できないことを示しているように見えます。
私が知りたいのは; これは本当ですか?もしそうなら、これはIE7/8などの問題ですか?これに関する追加の公式ドキュメントはありますか。