jQuery UI自动完成行为.如何在输入时搜索自由文本?

Joh*_*ohn 9 javascript jquery jquery-ui autocomplete

第一个问题(希望,但可疑,我唯一的问题)

我正在使用jQuery UI Autocomplete.以下是复制我的问题的示例代码.

var suggestions = ["C", "Clojure", "JavaScript", "Perl", "PHP"];

$("#autocomplete").autocomplete({
    source: suggestions
});
Run Code Online (Sandbox Code Playgroud)

当用户输入"J"时,他们将会看到"Clojure"和"JavaScript"作为建议.

我从这个列表中省略了Java,如果用户想要搜索Java,他们输入'Java',按回车键但表单不提交.如果添加空格,"JavaScript"建议将消失,并且可以通过按Enter键提交表单.

我正在创建一个免费搜索,我希望用户能够通过按Enter键进行搜索,即使有可用的建议.

$("#autocomplete").keypress(function(event) {
  alert(event.keyCode);
  if (event.keyCode=='13') $this.closest('form').submit();
});
Run Code Online (Sandbox Code Playgroud)

我尝试了上面的想法,我可以手动检测提交按键并提交表单,但警报显示检测到所有键除了提交,这似乎被自动完成抑制.

任何帮助是极大的赞赏!谢谢.

rya*_*lit 8

UPDATE

我不得不做一些改动,但这样做之后这个代码在我这边工作得很好.首先,e.keycode应该是e.keyCode.我不认为这个案例很重要,但确实如此.另外,当您检查keyCode是否为enter按钮时,请确保没有引用13.如果你这样做,它将无法正常工作.这是新代码:

var suggestions = ["C", "Clojure", "JavaScript", "Perl", "PHP"];
$("#autocomplete").autocomplete({
    source: suggestions
}).keypress(function(e) {
    if (e.keyCode === 13) {
        $(this).closest('form').trigger('submit');
    }
});
Run Code Online (Sandbox Code Playgroud)

按键功能应如下所示,而且,您可以链接自动完成功能和按键功能,以便您更轻松.下面的代码应该工作.

var suggestions = ["C", "Clojure", "JavaScript", "Perl", "PHP"];
$("#autocomplete").autocomplete({
    source: suggestions
}).keypress(function(e) {
    if (e.keycode === 13) {
        $(this).closest('form').trigger('submit');
    }
});
Run Code Online (Sandbox Code Playgroud)