Déclencheur touche(keydown) avec jQuery
J'ai fait mes devoirs et vérifié beaucoup de questions, mais ne pouvait toujours pas trouver quelque chose que je peux aller au travail.
J'ai une saisie de recherche. Lorsque l'utilisateur clique sur un exemple, je veux le mot "docteur" écrit dans ma recherche d'entrée lettre par lettre. J'ai pu le faire, en changeant $("#recherche").val() il y a longtemps, mais là est le problème. Alors que normalement utilisateur dans la recherche de l'entrée d'auto-complétion div est de sortir. Elle est déclenchée par l'événement keydown. Si je viens de changer le val d'attribut de l'entrée, la saisie semi-automatique div ne sortira pas, donc j'ai besoin de quelque sorte le déclencheur de l'événement keydown donc ça va venir.
J'ai trouvé cette solution:
$("#example").click(function() {
$("#search").focus();
var e = jQuery.Event("keyup");
e.keyCode = 50;
$("#search").trigger(e);
});
mais je ne pourrais pas le faire fonctionner. Des idées s'il vous plaît?
Ici est de savoir comment html ressemble:
<input type="text" id="search" />
Example: <span id="example">doctor</span>
J'ai aussi essayé d'utiliser l'e.qui, au lieu de l'e.mot de code. Toujours rien ne se passe de changer. Le script fonctionne jusqu'à ce que le focus() de l'événement. L'entrée devient concentré et script semble s'arrêter.
OriginalL'auteur Nazar | 2011-09-15
Vous devez vous connecter pour publier un commentaire.
ref: De manière définitive pour déclencher des événements de pression de touche avec jQuery
OriginalL'auteur Rafay
Une meilleure façon est de déclencher votre saisie semi-automatique sur un textChange événement plutôt que keyup/bas. De cette façon, vous pouvez utiliser
$("#search").val()
la voie de la facilité et de l'autocomplétion sera déclenchée.Bonus: Si vous utilisez textChange il sera également déclencher la saisie semi-automatique si l'utilisateur copie-colle le texte à l'aide du menu contextuel de la souris, etc. (et il ne se déclenche pas sur tab ou les touches fléchées)
Je viens de réaliser que j'ai besoin de déclencher une frappe de touche de toute façon, parce que lorsque l'utilisateur va appuyer sur l'exemple, le médecin mot sera tapé, et la saisie semi-automatique div. Alors j'ai besoin de déclencher la flèche vers le bas une fois et la touche entrée une fois donc, il va aller à l'url de la première suggestion de saisie semi-automatique div. Il est censé être quelque chose comme une démo.
Bien sûr, mais si c'était moi, je ferais
.textchange(autocomplete_handler)
et un autre.keydown(arrows_and_enter_handler)
OriginalL'auteur Jens Roland