Maison > interface Web > js tutoriel > le corps du texte

Pourquoi ne puis-je pas modifier de manière fiable les types de champs de saisie avec jQuery ?

Susan Sarandon
Libérer: 2024-11-15 18:56:02
original
440 Les gens l'ont consulté

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

Changer les types de champs de saisie avec jQuery : un problème revisité

Dans le but de modifier le type d'un champ de saisie de mot de passe à texte et de définir un valeur par défaut, l'extrait jQuery suivant pourrait ne pas être suffisant :

$(document).ready(function() {
    $('#password').attr('type', 'text');
    $('#password').val('Password');
});
Copier après la connexion

En y regardant de plus près, le problème vient de mesures de sécurité du navigateur, qui interdisent souvent de telles actions.

Pour illustrer cette limitation, considérons l'extrait suivant, qui crée un champ de saisie de mot de passe et tente de changer son type en texte :

var pass = document.createElement('input');
pass.type = 'password';
document.body.appendChild(pass);
pass.type = 'text';
pass.value = 'Password';
Copier après la connexion

Dans ce scénario, l’opération réussit sans problème. Cependant, en inspectant le code source de jQuery, nous découvrons un cas spécifique relatif à 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";
Copier après la connexion

Cela suggère qu'il peut s'agir d'un bug du navigateur ou d'une fonctionnalité de sécurité délibérée dans Internet Explorer. Par conséquent, changer le type de champs de saisie via jQuery peut ne pas être une solution fiable dans tous les cas.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal