soumettre le formulaire avec retard lors de la saisie des données dans le champ de saisie

J’ai un formulaire simple que je dois soumettre automatiquement lorsque le texte est entré.

Je peux utiliser onChange ou onKeyUp sans obtenir le meilleur résultat.

HTML est:

Et jQuery

 jQuery("#fusionSearchForm").keyup(function() { this.submit(); }); 

Ceci se soumet chaque fois qu’un caractère est entré. Je préférerais que ce soit plutôt – il y avait un délai avant la soumission pour que vous puissiez terminer votre frappe – que le focus rest sur le champ de saisie prêt à être saisi après la soumission (si rechargé)

Un moyen de retarder un form.submit () afin que l’utilisateur puisse finir de taper avant que le formulaire soit soumis?

(UPDATE pour coder en un type plus “jQuery” de soumission)

Le fr. Anders

Cela devrait marcher. Soumet le formulaire quand rien n’a été tapé pendant 500 ms

 var timerid; jQuery("#fusionSearchForm").keyup(function() { var form = this; clearTimeout(timerid); timerid = setTimeout(function() { form.submit(); }, 500); }); 

C’est une mauvaise idée. Vous ne voulez pas contourner les contrôles auxquels les utilisateurs s’attendent sur les entrées de formulaire. Si vous ne voulez pas de bouton d’envoi, attendez au moins de l’envoyer jusqu’à ce que vous capturiez un “entrer”.

Comment pouvez-vous savoir quand un utilisateur a fini de taper à l’aide d’un lecteur autre qu’un lecteur de lecture des pensées , à moins que vous ne souhaitiez qu’il tape “retour” ou “entrée”? Les utilisateurs ne sauront pas qu’ils sont supposés suspendre un instant pour laisser le formulaire être soumis à l’expiration du délai imparti ou qu’ils doivent se dépêcher pour que leur recherche soit entrée avant l’expiration du délai d’attente de 500 MS.

Voir: cette question

Si vous souhaitez commencer à renvoyer les résultats immédiatement après toute soumission, vous pouvez effectuer une sorte de procédure d’ajax autocomplete.

autocomplete http://img9.imageshack.us/img9/5526/autocompletegoogle.png

Voici un exemple jQuery de soumission sur une entrée:

  $("input").keypress(function(e) { switch (e.keyCode) { case 13: $("#formid").submit(); return false; default: return true; } });