Modification du type d'un champ de saisie à l'aide de jQuery (texte - & gt; mot de passe)
Je suis en train de changer le type de l'entrée, plus précisément après cliquez sur l'entrée changer type="text" modifier="mot de passe".
Je ne sais pas pourquoi, mais je ne peux pas ajouter l'option type="password" comme attribut à l'entrée.
$('input#id_reg_pass').removeAttr("type"); #this works, type="text" is removing
$('input#id_reg_pass').attr('type', 'password'); #problem, this not works
$(this).addClass('exampleText').val($(this).attr('title'));
N'ai pas quelqu'un à le même problème? Je vais heureux pour chaque indice...
Merci
source d'informationauteur user1946705
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez jQuery 1.6, utilisez
.prop
à la place:Démo: http://jsfiddle.net/z8Rj3/
Vous ne pouvez pas modifier l'attribut
type
après l'ajout de l'élément du DOM, si vous voulez qu'il fonctionne de la même manière sur tous les navigateurs, voir cette et cette.J'ai eu exactement le même problème, j'ai voulu montrer un texte dans un champ de mot de passe jusqu'à ce que l'utilisateur a cliqué dessus. J'ai fait une autre approche, au lieu d'essayer de modifier le type du champ, je le cacher et a montré un nouveau champ de texte, puis appelle le focus(). Il fonctionne très bien.
où #password_fake est un champ de texte et #mot de passe un mot de passe de terrain avec style="display:none".
Votre code génère une erreur pour moi,
type property can't be changed
. Fait intéressant cependant, le code suivant fonctionne pour moi sur Chrome au moins:Il se pourrait que cela ne fonctionne pas de la croix-navigateur, cependant, ce qui expliquerait pourquoi jQuery ne le permet pas (Comme l'a souligné par Niklas, c'est le cas). Vous pouvez également construire un nouveau
<input>
avec les mêmes attributs et de remplacer l'ancien.Essayer cette la démo est ici