我正在使用一个简单的搜索框,用户可以在其中键入值或从下拉菜单中选择它。现在,当您选择菜单时,它可以正常工作,但如果您按Enter键,它就不会执行任何操作。任何帮助表示赞赏。感谢
var source = [ { value: "src/devices/consoles/ps4.php",
label:"PlayStation 4"
},
{ value: "src/devices/consoles/ps4.php",
label:"PS4"
},
{ value: "src/devices/consoles/ps4.php",
label:"Sony"
},
{ value: "src/devices/consoles/xbox.php",
label:"Xbox One"
},
{ value: "src/devices/consoles/xbox.php",
label:"Microsoft"
},
{ value: "src/devices/consoles/wiu.php",
label:"Nintendo"
},
{ value: "src/devices/consoles/wiu.php",
label:"Wii U"
}
];
$("input#tags").autocomplete({
source: source,
select: function( event, ui ) {
window.location.href = ui.item.value;
}
});
答案 0 :(得分:1)
在您的事件处理程序中,尝试添加val()
属性并说明您应该允许代表回车的keyCode 13
上的提交:
// ...
select: function (event, ui) {
window.location.href = ui.item.value;
$(this).val(ui.item.value).val();
if (event.keyCode == 13) {
$("#id_of_button").submit();
}
}
// ...
或者在事件处理程序中使用另一种方法,定义keydown按下以进入并触发点击:
// ...
select: function (event, ui) {
window.location.href = ui.item.value;
var e = jQuery.Event("keydown");
e.which = 13;
$("id_of_button").trigger(e);
}
// ...
答案 1 :(得分:1)
试试这个:
$("#inputbox").on("keypress", function(e) {
if (e.which == 13) {
$("#submitbutton").click();
// or $("form").submit();
}
});
资源: