Heim >Web-Frontend >js-Tutorial >Warum kann ich Eingabefeldtypen mit jQuery nicht zuverlässig ändern?
Ändern von Eingabefeldtypen mit jQuery: Ein erneut aufgegriffenes Problem
Bei einem Versuch, den Typ eines Eingabefelds von Passwort in Text zu ändern und ein festzulegen Wenn Sie den Standardwert verwenden, reicht das folgende jQuery-Snippet möglicherweise nicht aus:
$(document).ready(function() { $('#password').attr('type', 'text'); $('#password').val('Password'); });
Bei näherer Betrachtung ergibt sich das Problem aus Browser-Sicherheitsmaßnahmen, die solche Aktionen oft verbieten.
Um diese Einschränkung zu veranschaulichen, betrachten Sie das folgende Snippet, das ein Passwort-Eingabefeld erstellt und versucht, seinen Typ in Text zu ändern:
var pass = document.createElement('input'); pass.type = 'password'; document.body.appendChild(pass); pass.type = 'text'; pass.value = 'Password';
In diesem Szenario gelingt der Vorgang ohne Probleme. Bei der Untersuchung des jQuery-Quellcodes entdecken wir jedoch einen speziellen Fall im Zusammenhang mit Internet Explorer:
// 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";
Dies deutet darauf hin, dass es sich möglicherweise um einen Browserfehler oder eine absichtliche Sicherheitsfunktion im Internet Explorer handelt. Daher ist die Änderung des Typs der Eingabefelder über jQuery möglicherweise nicht in allen Fällen eine zuverlässige Lösung.
Das obige ist der detaillierte Inhalt vonWarum kann ich Eingabefeldtypen mit jQuery nicht zuverlässig ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!