première question (et j'espère, mais douteusement mon seul)JQuery UI Comportement de saisie semi-automatique. Comment rechercher du texte libre sur entrer?
J'utilise le jQuery UI Autocomplete. Voici un exemple de code pour répliquer mon problème.
var suggestions = ["C", "Clojure", "JavaScript", "Perl", "PHP"];
$("#autocomplete").autocomplete({
source: suggestions
});
Quand ils seront présentés un utilisateur tape 'J' avec 'Clojure' et 'JavaScript' comme suggestions.
J'ai omis Java dans cette liste, si l'utilisateur veut rechercher Java, il tape 'Java', appuyez sur la touche Entrée, mais le formulaire n'est pas envoyé. Si vous ajoutez un espace, la suggestion 'JavaScript' disparaît et le formulaire peut être envoyé en appuyant sur la touche Entrée.
Je crée une recherche gratuite, je veux que les utilisateurs puissent rechercher en appuyant sur Entrée même s'il y a des suggestions disponibles.
$("#autocomplete").keypress(function(event) {
alert(event.keyCode);
if (event.keyCode=='13') $this.closest('form').submit();
});
J'ai essayé la pensée ci-dessus, je pouvais détecter manuellement soumettre keypress et soumettre le formulaire, mais l'alerte montre toutes les clés sont détectées SAUF présenter ce qui semble être supprimé par la saisie semi-automatique.
Toute aide est grandement appréciée! Merci.
Salut, je vous remercie de prendre la peine de répondre. – John
Oups, semble Stack Overflow a le problème inverse et entrez soumis ma réponse à la place de la nouvelle ligne que je m'attendais! Ce code ne résout pas le problème, pour une raison quelconque, la touche d'entrée, le code '13' n'est tout simplement pas reconnu avec la touche. C'est comme si elle avait été volontairement désactivée, je n'arrive pas à comprendre comment l'activer! Si vous créez un div avec id = 'key' et ajoutez ce qui suit dans la fonction keypress: $ ('# key'). Text ('Key:' + e.keyCode); et tapez, vous verrez ce que je veux dire!Il ne recevra que '13' s'il n'y a pas de suggestions. Des idées comment forcer à soumettre sur entrer? Merci! – John
Merci pour la mise à jour ... ne fonctionnait toujours pas sur ma fin (j'ai utilisé Chrome, votre navigateur pourrait gérer différemment?) Mais j'ai réussi à le faire fonctionner ici aussi. En regardant le code de saisie semi-automatique, il avait une liaison de clavier où, sur la touche Entrée pressée: if (self.menu.element.is (": visible")) {event.preventDefault(); } C'est ce qui a arrêté la soumission du formulaire sur enter (le comportement par défaut que j'ai essayé de restaurer!). Dans cet esprit, tout ce que nous devons faire est de remplacer keypress avec keydown et notre code fonctionne dans les navigateurs que j'ai essayés. Merci pour votre aide! – John