Ich verwende das jquery-Autocomplete-Plug-in und versuche, die automatische Vervollständigung anhand bestimmter vom Benutzer eingegebener Tasten manuell auszulösen. Ich versuche, die automatische Vervollständigung an die Eingabe im laufenden Betrieb zu binden, damit die automatische Vervollständigung nach Übereinstimmungen suchen kann, sobald ein Benutzer eine bestimmte Taste zum Auslösen von "Ich gebe jetzt Daten zur Suche ein" eingibt, die in der Mitte sein könnte des Feldes, nicht unbedingt am Anfang.jquery keypress-Ereignis zum Auslösen der automatischen Vervollständigung nur für bestimmte Tastencodes
Ich verbinde ein Tastendruckereignis mit einem Eingang. Wenn der Benutzer einen bestimmten Schlüssel wie "=" eingibt, möchte ich alle Elemente im Array anzeigen. Wenn der Benutzer dann einen Buchstaben eingibt, würde er die Optionen automatisch vervollständigen, die mit dem Array für dieses Zeichen übereinstimmen. Dies versucht mehr oder weniger zu imitieren, was in Excel passiert, wenn ein Benutzer die Gleichheits-Taste drückt und die verfügbaren Funktionen sieht, außer die "=" - Taste muss nicht das erste Element in der Eingabe sein, sie sollte jedes Mal automatisch vervollständigt werden. = "wird jedes Mal, wenn eine Option ausgewählt wird, gedrückt und gelöst.
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);
}
});
Selbst wenn ich die Autovervollständigung erhalten auszulösen, wenn der Benutzer etwas vor dem Text eingegeben hat, die passen könnten, wäre es nicht wegen des vorherigen Textes entsprechen. Wenn der Benutzer also "abd =" eingibt, erhält die Autovervollständigung "abb =" als ihren q-Parameter und nicht nur "=".
Jede Hilfe wird wirklich geschätzt, ich bin so fest !!
hey petersendidit, Vielen Dank für die Antwort. Nachdem ich 2 Tage lang gefummelt hatte, dachte ich, dass es eine Anpassung an das Plugin selbst geben musste. Meine Anforderungen sind etwas komplizierter geworden. Eine Funktion hat Parameter und alle Parameter sind Autocompletes für andere Arrays. Eine Funktion namens "functionX" hätte also eine Form von "function()", die mit dem "=" oder einer Form von "[param]" angezeigt würde. Wenn der Benutzer die "[" - Taste drückt, würde die automatische Vervollständigung dann ändern, um nach dem Array dieses Parameters zu suchen.Wenn der Benutzer also "abc [" eingeben würde, würde er sich dann den anderen anschauen. –
Also jede Funktion hat 2 Formen, 1 Form ist wie functionName(), die alle angezeigt würden, wenn der Benutzer "=" trifft, und die andere Form, die nur ein enclosureStart char und enclosureEnd char ist. Wenn also der Benutzer die Taste "[" in meinem Beispiel drückt, sollten keine Ergebnisse zurückkommen, aber beim nächsten Schlüssel sollte der Benutzer Ergebnisse vom Parameter der Funktion "Autocomplete" sehen. Macht das irgendeinen Sinn? Ich kann Ihnen einen detaillierten Anwendungsfall mailen, wenn ich es klarer machen könnte ... Nochmals vielen Dank für die Hilfe! –