jQuery: パスワード入力タイプを変更できない
この問題は、次を使用してパスワード入力フィールドのタイプをテキストに変更しようとすると発生します。 jQuery を実行しますが、実行に失敗します。問題のコード:
$(document).ready(function() { $('#password').attr('type', 'text'); $('#password').val('Password'); });
原因と解決策
この動作は、ブラウザーによって実装されたセキュリティ対策である可能性が高くなります。 jQuery ソース コードによると:
// We can't allow the type property to be changed (since it causes problems in IE) if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) throw "type property can't be changed";
IE およびその他のブラウザーの場合、入力フィールド (特にパスワードなどの機密性の高いもの) の種類の変更は許可されていません。
回避策
回避策の 1 つは、直接 DOM コードを使用することです:
var pass = document.createElement('input'); pass.type = 'password'; document.body.appendChild(pass); pass.type = 'text'; pass.value = 'Password';
以上がjQuery がパスワード入力フィールドのタイプを変更できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。