使用jquery我有一个自动完成文本框,如jQuery UI网站上的组合框示例http://jqueryui.com/demos/autocomplete/#combobox
$("#mycombobox").combobox();
这基本上是一个输入文本框,菜单和按钮。
问题出在aspx页面上我有mycombobox有一个asp:按钮,当按下enter键时,它会连接到提交表单。
在组合框中
$(<input>)
.autocomplete(...)
.keydown(function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13 || keyCode == 108) {
$(this).blur();
return false;
}
return true;
})
keydown是我阻止它提交的hacky方式,但它只能让它正确一半。我希望您第一次按Enter键以调用自动完成的更改事件,然后按下第二次输入,表单可以提交。
没有keydown hack,仍会在自动完成时调用更改,但直到调用submit后才使用旧值。我宁愿不这样做,也找到更好的方法。
修改
如果选择了某些内容它有正确的行为,如何在显示菜单时手动选择第一个选项?
答案 0 :(得分:0)
您可以检查自动填充用户界面是否可见,以处理按Enter键的操作
$('.ui-autocomplete').is(':visible')