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
Susan SarandonOriginal
2024-11-15 18:56:02537Durchsuche

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');
});

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!

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