web-dev-qa-db-fra.com

Activation du remplissage automatique du formulaire du navigateur

Je fais un formulaire d'inscription pour mon site Web. Il contient divers champs de formulaire standard. Tels que: nom, adresse, numéro de téléphone, nom d'utilisateur, mot de passe, etc.

Lorsque je double-clique sur un champ (dans Chrome 16), afin que je puisse remplir automatiquement mon adresse, je reçois ce message:

Cette page Web a désactivé le remplissage automatique de ce formulaire.

Je ne l'ai pas désactivé, alors comment l'activer? J'ai essayé d'ajouter autocomplete="on" à la <form> tag, et à (certains) le <input> tags, et cela n'a pas aidé.

Dois-je ajouter autocomplete="on" à chaque domaine? De plus, comment le navigateur sait-il quel champ est quoi? Dois-je nommer les champs quelque chose de spécial?

Une autre question: existe-t-il une sorte d'événement onautocomplete qui se déclenche lorsqu'un formulaire est rempli automatiquement? Sur mon formulaire, lorsque vous entrez un code postal, il regarde dans notre base de données (via AJAX), puis obtient l'état et la ville (la ville et l'état sont des listes déroulantes, car les codes postaux peuvent être pour plus d'une ville), et les remplit pour vous. J'espérais pouvoir l'exécuter après le remplissage automatique du formulaire.

P.S. J'utilise le plugin jQuery validation de formulaire , si cela importe.

51
Rocket Hazmat

Le problème était que la balise de formulaire ne contenait pas method="POST".

Après avoir recherché le message sur Google, j'ai trouvé un rapport de bogue , et l'un des commentaires mentionné method="POST".

J'ai ajouté method="POST", Et le tour est joué! Le remplissage automatique fonctionne.

Dans certains cas, vous devrez peut-être également ajouter un action si le formulaire n'en a pas. action="javascript:void(0)" fonctionne.

Remarque: le remplissage automatique semble déclencher l'événement onchange.

Remarque 2: Quant à savoir comment le navigateur sait quel champ est quoi, voir cette question: Comment déclencher le remplissage automatique dans Google Chrome?

73
Rocket Hazmat

L'option pour désactiver la saisie semi-automatique se trouve normalement dans la balise de formulaire, voir la page développeur de Mozilla ici . Cela devrait signifier que la suppression normale de cet attribut devrait le réactiver sur une page Web.

Concernant la deuxième partie avec la demande AJAX, je ne pense pas qu'il y ait d'écouteur pour cela, mais vous pouvez ajouter une fonction qui vérifie la valeur du champ toutes les x secondes par exemple, et si cela a changé, vous pouvez effectuer votre recherche.

3
canihavesomecoffee