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)
我尝试了上面的想法,我可以手动检测提交按键并提交表单,但警报显示检测到所有键除了提交,这似乎被自动完成抑制.
任何帮助是极大的赞赏!谢谢.
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)