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

Susan Sarandon
リリース: 2024-11-17 08:10:03
オリジナル
1002 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート