Maison >interface Web >js tutoriel >Pourquoi jQuery ne peut-il pas modifier le type d'un champ de saisie de mot de passe ?
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!