Ich möchte Möglichkeit für Benutzer geben, um seine eigene Variante hinzuzufügen, nicht nur eine von vorgeschlagen. Aber wenn ich etwas in das Feld eintippe und auf ENTER klicke, wird mein Formular übermittelt.jQuery UI Autocomplete: wie man freien Text erlaubt
Dann habe ich versucht, Keydown-Ereignis für mein Feld zu fangen, aber in diesem Fall verliere ich die Möglichkeit, eine Variante aus Vorschlägen mit Pfeilen und geben Sie die Tasten, weil ui Parameter nicht definiert ist.
$('#field_id').on('keydown', function(event) {
if (event.keyCode == $.ui.keyCode.ENTER
|| event.keyCode == $.ui.keyCode.NUMPAD_ENTER)
{
$('#field_id').trigger('autocompleteselect');
}
});
$('#field_id').autocomplete({
source: [{"id":"20","value":"This is not mandatory decline reason"},{"id":"21","value":"You are have to be rejected"}]
minLength: 0
}).on('autocompleteselect', function(event, ui) {
// if I click on suggestion using mouse - everything is ok
// but not for ENTER-key choosing
// I want something like that:
if (ui.item) {
id = ui.item.id;
value = ui.item.value;
} else {
id = 'my_new_item';
value = $(this).val();
}
return false;
});
Ich bin mir nicht sicher, warum dein UI-Parameter undefiniert ist .... aber warum stellst du nicht einfach ein window.alert (event.keyCode) vor deine if-Anweisung. Dann können Sie versuchen, es mit Enter und Tastatur eingeben, um zu sehen, wie die Zahlen kommen. – rnirnber
auch ... Sie könnten das Keypup-Event anstelle von Keydown versuchen – rnirnber