Я хочу дать возможность пользователю добавить свой вариант, а не только один из предложенных. Но когда я ввожу что-то в поле и нажимаю ENTER, моя форма отправляется.jQuery UI Autocomplete: как разрешить свободный текст
Затем я попытался поймать событие keydown для своего поля, но в этом случае у меня нет возможности выбрать вариант из предложений с помощью стрелок и ввести ключи, потому что параметр ui не определен.
$('#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;
});
Я не уверен, почему ваш ui paramater не определен ... но почему бы вам просто не поставить window.alert (event.keyCode) перед вашим оператором if. Затем вы можете попробовать сделать это с enter и клавиатурой, чтобы узнать, как выглядят цифры. – rnirnber
также ... вы можете попробовать событие keyup вместо keydown – rnirnber