我一直在试图弄清楚,当人们从自动完成选项中选择结果时,如何提交表单。它需要通过鼠标单击或回车按钮来工作。我看到了一些例子,但总是支离破碎。没有人显示整个函数。
我有下面的代码,但我得到了错误的结果不是一个函数。我不知道如何组合它来做我想做的事情。任何帮助都是非常感谢的。
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();
});
});发布于 2011-03-20 09:21:22
来自:http://api.jqueryui.com/autocomplete/#event-select
select类型:自动完成选择
当从菜单中选择某一项时触发;ui.item指的是选定的项。select的默认操作是用所选项目的值替换文本字段的值。取消此事件将阻止更新值,但不会阻止菜单关闭。
代码示例
提供一个回调函数,将select事件作为init选项进行处理。
$( ".selector“).autocomplete({ select:函数(事件,ui) { ... } });
通过以下类型绑定到select事件: autocompleteselect。
$( ".selector“).bind(”自动完成选择“,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();
}
});如果我确定你想做什么的话。
发布于 2012-02-25 04:15:33
实际上,您不需要通过ID来定位for元素和表单...因为该信息已经通过事件对象传递给了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();
}
});https://stackoverflow.com/questions/5366068
复制相似问题