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

标签 javascript jquery jquery-ui autocomplete

第一个问题(希望如此,但怀疑是我唯一的问题)

我正在使用 jQuery UI 自动完成功能。这是复制我的问题的示例代码。

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

$("#autocomplete").autocomplete({
    source: suggestions
});

当用户键入“J”时,他们将看到“Clojure”和“JavaScript”作为建议。

我从这个列表中省略了 Java,如果用户想要搜索 Java,他们键入“Java”,然后按回车键,但表单不会提交。如果您添加空格,“JavaScript”建议将消失,可以通过按回车键提交表单。

我正在创建一个免费搜索,我希望用户能够通过按回车键进行搜索,即使有可用的建议也是如此。

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

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

非常感谢任何帮助!谢谢。

最佳答案

更新

我不得不进行一些更改,但此代码在我这边运行良好。首先,e.keycode 应该是 e.keyCode。我不认为这个案子很重要,但确实如此。此外,确保在检查 keyCode 是否为回车按钮时没有引用 13。如果这样做,它将无法正常工作。这是新代码:

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

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

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

关于javascript - jQuery UI 自动完成行为。如何在输入时搜索自由文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785993/

相关文章:

javascript - 将变音符号传递给 jQuery UI 对话框

javascript - JQuery 只查看一个 DIV ID 来获取值

php - MySQL 从查询结果中获取数据

javascript - 如何在页面上包含用于按钮、图片等的多个 JavaScript 脚本?

javascript - 传递/改变 jQuery UI 拖动事件

javascript - 在 javascript 中运行 "background task"

javascript - 在 ViewModel 之外使用计算数组来 knockout JS

javascript - 如果系列中的数据超过 16 个,如何设置填充和位置

jquery - 应该如何在页面中包含 jQuery 及其插件?

javascript - 什么时候在函数中使用 return ?