J'utilise le plugin jquery autocomplete, et j'essaie de déclencher la saisie semi-automatique manuellement en fonction de certaines clés entrées par l'utilisateur. J'essaie de lier l'autocomplétion à l'entrée à la volée afin que la saisie semi-automatique puisse commencer à rechercher des correspondances une fois qu'un utilisateur entre une certaine touche pour déclencher "J'entre maintenant les données à rechercher", ce qui pourrait être au milieu du champ, pas nécessairement au début.jquery keypress event pour déclencher la saisie semi-automatique uniquement sur des codes-clés spécifiques
Je lie un événement de pression sur une entrée. Lorsque l'utilisateur entre une certaine clé, comme "=", je veux afficher tous les éléments dans le tableau. Lorsque l'utilisateur entre alors une lettre, les options correspondant au tableau pour ce caractère sont automatiquement complétées. Cela essaie plus ou moins d'imiter ce qui se passe dans Excel, quand un utilisateur frappe la touche égale et voit les fonctions disponibles, sauf que la touche "=" ne doit pas être le premier élément de l'entrée, elle doit automatiquement être complétée " = "est pressé et déconnecté ce courant alternatif chaque fois qu'une option est sélectionnée.
var array1 = ['one','two','three'];
$.input1.bind('keypress', function(event) {
var keyCode;
if (event.keyCode > 0) {
keyCode = event.keyCode;
} else if (typeof(event.charCode) != "undefined") {
keyCode = event.charCode;
}
if (String.fromCharCode(keyCode) == '=') {
$.input1.unbind('keypress');
$.input1.autocomplete(array1);
$.input1.blur();
$.input1.focus();
e = $.Event('keydown');
e.which = keyCode;
$.input1.trigger(e);
}
});
Même si je reçois la saisie semi-automatique pour déclencher, si l'utilisateur a entré quoi que ce soit avant que le texte qui pourrait correspondre, il ne correspondraient pas à cause du texte précédent. Ainsi, si l'utilisateur entre "abd =", la saisie semi-automatique obtient "abb =" comme paramètre q et pas seulement "=".
Toute aide est vraiment appréciée, im tellement coincé !!
hey petersendidit, Merci beaucoup pour la réponse. Après avoir tâté pendant 2 jours, j'ai pensé qu'il devait y avoir une sorte de personnalisation du plugin lui-même. Mes exigences sont devenues un peu plus compliquées. Une fonction a des paramètres, et chaque paramètre est autocompleted à d'autres tableaux. Donc une fonction appelée "functionX" aurait une forme de "function()" qui apparaîtrait avec le "=" ou une forme de "[param]". Lorsque l'utilisateur appuie sur la touche "[", la saisie semi-automatique passe à la recherche sur le tableau de ce paramètre.Donc, si l'utilisateur tapait "abc [", il regarderait alors l'autre. –
Donc chaque fonction a 2 formes, 1 forme est comme functionName() qui tout se montrerait si l'utilisateur tape "=", et l'autre forme qui est juste un enclos enclosure et un enclosureEnd char. Ainsi, lorsque l'utilisateur clique sur la touche "[" dans mon exemple, aucun résultat ne doit revenir, mais sur la clé suivante, l'utilisateur doit voir les résultats du paramètre de saisie semi-automatique des paramètres de la fonction. Cela a-t-il un sens? Je peux vous envoyer un cas d'utilisation détaillé si je pouvais le rendre plus clair ... Encore une fois, merci beaucoup pour l'aide! –