Tôi muốn cung cấp cho người dùng khả năng thêm biến thể của riêng mình, không chỉ từ biến thể được đề xuất. Nhưng khi tôi nhập nội dung nào đó vào trường và nhấp vào NHẬP, gửi biểu mẫu của tôi.Giao diện người dùng jQuery Tự động hoàn tất: cách cho phép văn bản miễn phí
Sau đó, tôi cố gắng nắm bắt sự kiện keydown cho trường của mình, nhưng trong trường hợp này, tôi có khả năng chọn một biến thể từ đề xuất bằng cách sử dụng mũi tên và nhập khóa vì tham số ui không xác định.
$('#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;
});
Tôi không chắc tại sao đại diện ui của bạn là không xác định .... nhưng tại sao bạn không đặt một window.alert (event.keyCode) trước câu lệnh if của bạn. Sau đó, bạn có thể thử làm điều đó với nhập và bàn phím nhập để xem những gì các con số đi lên như. – rnirnber
cũng ... bạn có thể thử sự kiện keyup thay vì keydown – rnirnber