2010-08-26 4 views
0

Je suis basé sur un panneau de connexion d'utilisateur piloté par formulaire standard. Fonctionne assez bien. Tous les navigateurs reconnaissent le modèle en tant que panneau de connexion et proposent de stocker des mots de passe. La manière dont les informations de connexion de l'utilisateur sont ensuite rappelées varie selon le navigateur. Je me concentre ici sur FF, mais le problème est universel.Authentification d'utilisateur simple et navigateurs utiles

Comme tout formulaire standard, mon formulaire de connexion comprend des balises INPUT de base. Le W3C dit que les balises INPUT ne devraient déclencher ONCHANGE que sur ONBLUR. Si je voulais piloter un bouton OK (par exemple) qui était désactivé jusqu'à ce que certaines informations soient entrées dans mon formulaire, la conformité aux normes W3C signifie que mon bouton OK n'est activé que lorsque l'utilisateur clique sur le champ. Je n'aime pas beaucoup ce comportement et tout au long de mon application, mes balises INPUT sont sauvegardées par le code JS qui déclenche ONCHANGE au moment où une touche modificatrice descend. C'est tout dandy. Cependant ...

Lorsque FF reconnaît mon formulaire de connexion, il suggère de rappeler mes informations de connexion. Quand j'accepte, FF remplit utilement les deux champs et ... mon bouton OK reste désactivé (parce que mon pilote de clavier, qui détecte les touches de modification et déclenche l'événement ONCHANGE, ne connaît pas le changement de formulaire, FF a collé l'information dans le champ sans utiliser le tampon du clavier).

Quelqu'un a-t-il déjà rencontré ce problème et a-t-il découvert ce que les navigateurs d'événements déclenchent lorsque des informations apparaissent "hors de nulle part" dans un champ INPUT?

Merci.

Répondre

0
+0

Ah - bon endroit, Bryce. Je ne pensais pas être le premier. J'ai déjà rencontré l'événement Mutation. Ce n'est pas encore standard et je suis réticent à suivre cette voie. J'aime la brutalité de la méthode setTimeOut(), mind. Pourrais-je essayer ... – Ollie2893