ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery がパスワード入力フィールドのタイプを変更できないのはなぜですか?

jQuery がパスワード入力フィールドのタイプを変更できないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-17 08:10:03999ブラウズ

Why Can't jQuery Change a Password Input Field's Type?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。