我想给用户添加他自己的变体的可能性,而不仅仅是建议的。但是当我在字段中输入内容并点击ENTER时,我的表单提交。jQuery UI自动完成:如何允许自由文本
然后我试着去捕获我的领域的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参数是未定义的......但为什么你只是在你的if语句之前放了一个window.alert(event.keyCode)。然后,您可以尝试使用输入和键盘输入以查看数字出现的情况。 – rnirnber 2013-02-18 19:29:16
也...你可以尝试keyyd事件而不是keydown – rnirnber 2013-02-18 19:29:38