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

Pourquoi ne puis-je pas modifier le « type » d'un champ de saisie du mot de passe au texte avec jQuery ?

Linda Hamilton
Libérer: 2024-11-16 05:08:03
original
613 Les gens l'ont consulté

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

Modifier le type de champ de saisie avec jQuery : pourquoi cela peut ne pas fonctionner

Lorsque vous essayez de modifier un champ de saisie d'un type de mot de passe à un tapez du texte à l'aide de jQuery, vous pouvez rencontrer un problème où la modification ne prend pas effet.

Voici le code en question :

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

Ce code vise à modifier le champ de saisie avec un identifiant de "mot de passe" dans un champ de texte, puis remplissez-le avec le texte "Mot de passe". Cependant, il peut échouer en raison du modèle de sécurité du navigateur.

Les tests dans Safari affichent une erreur indiquant que la propriété type ne peut pas être modifiée. Ceci est également pris en charge par le code source de jQuery, qui contient une vérification :

if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
    throw "type property can't be changed";
Copier après la connexion

Cette vérification empêche la modification de la propriété type pour les champs de saisie dans Internet Explorer. On ne sait pas s'il s'agit d'un bug ou d'un choix de conception de sécurité.

Pour surmonter ce problème, vous pouvez utiliser la manipulation native du DOM au lieu de jQuery. Voici comment :

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

Ce code réussira à modifier le champ de saisie en type de texte et à le remplir avec la valeur spécifiée.

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