11
votes

Entrée HTML Autocomplete

J'ai une page avec certains champs de saisie. Les données de cette page sont envoyées au serveur sans utiliser le formulaire Soumettre. J'ai un javascript qui collecte les données, crée un JSON et l'envoie au serveur à l'aide de l'appel AJAX.

Le problème dans ce cas est que le navigateur ne permet pas de sauvegarder les données afin d'offrir une autocomplete pour la prochaine fois que l'utilisateur remplit le même formulaire.

est un moyen d'éviter cela? J'ai besoin d'un moyen d'offrir une autocomplete! N'importe quel tour?


5 commentaires

J'espère que cela vous aider à vous aider Stackoverflow.com/questions/ 15462991 / ...


Vous devrez peut-être élaborer légèrement sur cette question. Soit vous souhaitez plus que chaque utilisateur de voir les mêmes données à nouveau la prochaine fois ou souhaitez-vous que tous les utilisateurs voient les mêmes données dans l'autocomplete. Selon la réponse à cela, les réponses d'Anhnv ou de MuppetTrinder peuvent être meilleures.


Je me réfère au mécanisme de navigateur automatique. Lorsqu'un utilisateur revenait sur le formulaire, le navigateur, lorsque vous double-cliquez ou commencez à taper sur un champ d'entrée, vous indique toutes les valeurs que vous avez entrées sur ce champ (je pense que cela s'appelle des formulaires dans certains navigateurs, comme Firefox)


Cela implique que vous souhaitiez que les utilisateurs ne voient que des choses qu'elles sont entrées auparavant, et vous ne voulez pas qu'ils voient des choses que d'autres utilisateurs ont peut-être entré?


Exactement. Seules les valeurs qui ont été saisies une fois sur ce domaine de la forme. Est la fonction autocomplete du navigateur. Mais cela ne fonctionne que si le formulaire a été soumis.


4 Réponses :


1
votes

J'ai trouvé l'autocomplete à travailler lorsqu'il y a un formulaire réel attaché et que son événement de soumission a été déclenché (même si les données ont été envoyées par Ajax). Je suggérerais d'utiliser un formulaire avec un bouton Soumettre et d'intercepter la soumission via JavaScript (attachant dans l'événement ONSUBMIT ''S> ONSUBMIT''S>) pour l'empêcher et le faire par Ajax.

Utilisation d'un formulaire HTML approprié et évitez de soumettre, au lieu d'utiliser uniquement un champ de saisie, bénéficie également d'activer votre gestionnaire Onsubmit lorsque l'utilisateur appuie sur Entrée. Je trouve cela assez utile en tant qu'utilisateur.


2 commentaires

La valeur par défaut de autocomplete est sur . Donc, je ne pense pas que cela fera une différence.


Tu as raison. autocomplete est plus utile comme un attribut "off" lorsque vous voulez le désactiver. Ont mis à jour ma réponse.



2
votes

Avez-vous essayé la méthode décrite dans autocomplete de déclenchement sans soumettre un formulaire . Cela a fonctionné pour moi.

Trigger essentiellement d'un clic sur le bouton Soumettre d'un formulaire et obtenez le formulaire pour ouvrir une page vide dans une iframe cachée. C'est évidemment un hack, mais il clique littéralement sur le bouton Soumettre le formulaire, soumet le formulaire et ouvre une nouvelle page afin qu'elle fonctionne donc naturellement dans chaque navigateur que j'ai vérifié.

Pour citer l'exemple de balisup ici: xxx

puis déclenche la soumission avec $ ("# Soumettre-bouton"). Cliquez sur () lors du traitement du formulaire via AJAX. < / p>


0 commentaires

4
votes

J'utilise le stockage de navigateur HTML5 pour ces types de choses. Il y a une très bonne introduction à celle-ci ici Cela permet à la persistance des données du côté client pour la plupart des navigateurs modernes. Vous pouvez l'utiliser pour capturer des données de formulaire et le rappeler aussi souvent que vous le souhaitez.


0 commentaires

1
votes

Vous pouvez essayer ceci: autocomplete avec jQuery

p>

<div ng-app='MyModule'>
    <div ng-controller='DefaultCtrl'>
        <input auto-complete ui-items="names" ng-model="selected">
        selected = {{selected}}
    </div>
</div>


1 commentaires

À moins que je ne manque que quelque chose, il n'y avait aucune mention d'angulaire dans la question de l'OP, cette réponse semble dépendre d'un outil que OP n'a pas mentionné l'utilisation.