Maison >interface Web >js tutoriel >Pourquoi jQuery ne peut-il pas modifier le type d'un champ de saisie de mot de passe ?

Pourquoi jQuery ne peut-il pas modifier le type d'un champ de saisie de mot de passe ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-17 08:10:031082parcourir

Why Can't jQuery Change a Password Input Field's Type?

jQuery : Impossible de modifier le type de saisie du mot de passe

Ce problème se produit lorsque vous essayez de modifier le type d'un champ de saisie de mot de passe en texte à l'aide jQuery, mais ne parvient pas à s'exécuter. Le code en question :

$(document).ready(function() {
    $('#password').attr('type', 'text');
    $('#password').val('Password');
});

Cause et solution

Ce comportement est très probablement une mesure de sécurité mise en œuvre par le navigateur. Selon le code source de jQuery :

// 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";

Pour IE et potentiellement d'autres navigateurs, la modification du type de champs de saisie (particulièrement ceux sensibles comme les mots de passe) n'est pas autorisée.

Solution de contournement

Une solution de contournement consiste à utiliser du code DOM direct :

var pass = document.createElement('input');
pass.type = 'password';
document.body.appendChild(pass);
pass.type = 'text';
pass.value = 'Password';

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!

Déclaration:
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