在提交表单之前,jQuery自动完成强制更改

时间:2011-08-24 20:43:27

标签: jquery asp.net jquery-ui form-submit jquery-autocomplete

使用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后才使用旧值。我宁愿不这样做,也找到更好的方法。

修改
如果选择了某些内容它有正确的行为,如何在显示菜单时手动选择第一个选项?

1 个答案:

答案 0 :(得分:0)

您可以检查自动填充用户界面是否可见,以处理按Enter键的操作

$('.ui-autocomplete').is(':visible')