有没有办法处理在 jquery 自动完成功能中按下回车键的事件?如果我点击下拉结果项,我会转到以下网址
window.location.href = '/user?userId=' + ui.item.userId;
它在功能的选择部分工作正常。但是,如果我在输入一些字母并显示下拉结果列表时需要更改我的 url,但我没有单击其中一个项目,而是只按了回车键,我该如何处理呢?
$('#search').autocomplete({
source: function(request, response) {
$.ajax({
url: "/search/users",
data: {
query: request.term
},
success: function(data) {
var transformed = $.map(data, function(el) {
return {
name: el.name,
email: el.email
};
});
response(transformed);
},
error: function() {
response([]);
}
});
},
select: function(event, ui) {
window.location.href = '/user?userId=' + ui.item.userId;
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
var $a = $("<a></a>").append(item.name);
highlightText(this.term, $a);
return $("<li></li>").append($a).appendTo(ul);
};
我试过这个,但我想知道是否有更好的解决方案
$('#search').on('keypress', function(e) {
if (e.which == 13 && $(this).val()) {
window.location.href = '/users/list?name=' + $(this).val();
}
});
最佳答案
按键的想法没有错。如果您想要替代解决方案,我建议您使用 form
标记:
<form action="/users/list" method="get">
<input id="search" name="name">
</form>
如果自动完成菜单未激活,则表单将在按下回车后提交。
关于javascript - 在 jQuery UI 自动完成中处理输入按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524783/