jQuery UI自动完成提交onclick结果

当用户从自动填充选项中选择结果时,我一直在试图弄清楚如何提交表单。 它需要单击鼠标或输入按钮。 我看到那里的例子,但总是分片。 没有人展示整个function。

我在下面有这个代码,但是我得到的错误是结果不是函数。 我不知道如何将它结合起来做我想做的事情。 任何帮助表示赞赏。

jQuery(document).ready(function(){ jQuery("#vsearch").autocomplete("ajax/search.php", { minLength: 2 } ); jQuery("#vsearch").result(function(event, data, formatted) { jQuery('#vsearch').value( formatted ); jQuery('#search').submit(); }); }); 

来自: http : //api.jqueryui.com/autocomplete/#event-select

选择 – 输入:autocompleteselect

从菜单中选择项目时触发; ui.item指的是所选项目。 select的默认操作是将文本字段的值替换为所选项的值。 取消此事件可防止更新值,但不会阻止菜单关闭。

代码示例

提供一个回调函数来处理select事件作为init选项。

 $( ".selector" ).autocomplete({ select: function(event, ui) { ... } }); 

按类型绑定到select事件:autocompleteselect。

 $( ".selector" ).bind( "autocompleteselect", function(event, ui) { ... }); 

所以你会用:

编辑:(修改以防用户没有选择任何东西)

 $("#vsearch").autocomplete({ source: "ajax/search.php", minLength: 2, select: function(event, ui) { if(ui.item){ $('#vsearch').val(ui.item.value); } $('#search').submit(); } }); 

如果我确定你想要做什么。

实际上,您不需要通过ID来定位for元素和表单…因为该信息已经通过Event对象传递给select函数。 最好以这种方式获取表单,因为您可能在页面上有多个要应用自动完成的表单。 或者您可能希望自动完成多个元素。

另外,另一个答案中的语法是错误的。 JQuery使用.val()而不是.value()来设置输入的值。

这是一个更正的例子:

 $("#vsearch").autocomplete({ source: "ajax/search.php", minLength: 2, select: function(event, ui) { //assign value back to the form element if(ui.item){ $(event.target).val(ui.item.value); } //submit the form $(event.target.form).submit(); } });