2009-08-22 8 views
2

J'ai un champ de saisie qui est réglé par défaut sur type = "text" afin que le mot de passe puisse y être affiché. J'ai ce qui suit pour le changer en un champ de mot de passe quand l'utilisateur le sélectionne, qui fonctionne bien dans n'importe quel navigateur que j'ai essayé excepté Internet Explorer.this.type = 'mot de passe' ne fonctionne pas dans IE, mais tous les autres navigateurs

onfocus="this.type='password';" 

Comment ferais-je pour que cela fonctionne dans IE?

+0

C'est pourquoi déconseiller de réutiliser I.E. –

+0

ouais, bien pensé mais 60% de vos utilisateurs ont d'autres idées ...! – redsquare

+0

Ouais, c'est vrai! :-) Cela ne me dérange pas de développer pour Internet Explorer, même si je souhaite que ce soit plus facile lol. –

Répondre

6

IE n'aime pas changer dynamiquement le type d'un élément, une solution pourrait être de remplacer entièrement l'élément. Cependant, je suggérerais que vous utilisiez simplement un mot de passe de type entrée de sorte que tous les utilisateurs non-js auront toujours la même fonctionnalité et vivent sans le filigrane.

1

Quel effet tentez-vous d'atteindre? Voulez-vous que le mot de passe initial soit visible, mais quand il va en entrer un nouveau, il est obscurci? Si c'est le cas, vous pouvez simplement remplacer l'élément par un mot de passe, en copiant la valeur.

1

Il est préférable d'utiliser un < étiquette > avec le mot "mot de passe" plutôt que de l'afficher dans le contrôle lui-même. Vous pouvez faire apparaître l'étiquette comme si elle était dans la zone de texte en utilisant css. Un List Apart a un bon article sur ce genre de chose: http://www.alistapart.com/articles/makingcompactformsmoreaccessible/

Questions connexes