Heim > Web-Frontend > js-Tutorial > Warum kann ich Eingabefeldtypen mit jQuery nicht zuverlässig ändern?

Warum kann ich Eingabefeldtypen mit jQuery nicht zuverlässig ändern?

Susan Sarandon
Freigeben: 2024-11-15 18:56:02
Original
539 Leute haben es durchsucht

Why Can't I Reliably Change Input Field Types with jQuery?

Ä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');
});
Nach dem Login kopieren

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';
Nach dem Login kopieren

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";
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage