Heim >Web-Frontend >js-Tutorial >Warum kann ich mit jQuery den „Typ' eines Eingabefelds nicht von „Passwort' in „Text' ändern?

Warum kann ich mit jQuery den „Typ' eines Eingabefelds nicht von „Passwort' in „Text' ändern?

Linda Hamilton
Linda HamiltonOriginal
2024-11-16 05:08:03690Durchsuche

Why Can't I Change an Input Field's 'type' from Password to Text with jQuery?

Typ des Eingabefelds mit jQuery ändern: Warum es möglicherweise nicht funktioniert

Beim Versuch, ein Eingabefeld von einem Passworttyp in einen zu ändern Wenn Sie mit jQuery einen Texttyp eingeben, tritt möglicherweise ein Problem auf, bei dem die Änderung nicht wirksam wird.

Hier ist der Code in Frage:

$(document).ready(function() {
    // #login-box password field
    $('#password').attr('type', 'text');
    $('#password').val('Password');
});

Dieser Code zielt darauf ab, das Eingabefeld mit der ID „Passwort“ in ein Textfeld zu ändern und es dann mit dem Text „Passwort“ zu füllen. Es kann jedoch aufgrund des Sicherheitsmodells des Browsers fehlschlagen.

Beim Testen in Safari wird ein Fehler angezeigt, der darauf hinweist, dass die Typeigenschaft nicht geändert werden kann. Dies wird auch durch den jQuery-Quellcode unterstützt, der eine Prüfung enthält:

if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
    throw "type property can't be changed";

Diese Prüfung verhindert, dass die Type-Eigenschaft für Eingabefelder im Internet Explorer geändert wird. Es ist unklar, ob es sich hierbei um einen Fehler oder um eine Wahl des Sicherheitsdesigns handelt.

Um dieses Problem zu beheben, können Sie die native DOM-Manipulation anstelle von jQuery verwenden. So geht's:

var pass = document.createElement('input');
pass.type = 'password';
document.body.appendChild(pass);
pass.type = 'text';
pass.value = 'Password';

Dieser Code ändert das Eingabefeld erfolgreich in einen Texttyp und füllt es mit dem angegebenen Wert.

Das obige ist der detaillierte Inhalt vonWarum kann ich mit jQuery den „Typ' eines Eingabefelds nicht von „Passwort' in „Text' ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn