在传统HTML表单上使用JQuery Autocomplete。JQuery自动完成:在选择时提交表单?
尝试提交表单(老式的方式)时,进行选择。
但输入框被填写,然后我必须使第二次按“返回”,或单击提交按钮。
我已经尝试了几个例子,但我无法让他们工作。
如何在选择时自动提交表格?
在传统HTML表单上使用JQuery Autocomplete。JQuery自动完成:在选择时提交表单?
尝试提交表单(老式的方式)时,进行选择。
但输入框被填写,然后我必须使第二次按“返回”,或单击提交按钮。
我已经尝试了几个例子,但我无法让他们工作。
如何在选择时自动提交表格?
更新:我终于想出了这一个,下面的代码应该做的伎俩。由于某种原因,change
回调无法正常工作,但回调函数可以执行close
& select
回调。使用select
更好,因为如果该领域失去焦点,close
也将被调用。
$(function() {
$("#searchField").autocomplete({
source: "values.json",
select: function(event, ui) {
$("#searchForm").submit(); }
});
});
另一个更新:好吧,这里还有与select
回调,这是在默认情况下(在上面的代码中),如果您遍历自动完成下拉键盘出现问题,并与输入选择键,输入在表单提交之前被改变。但是,如果您使用鼠标选择它,表单会在输入更改前提交,因此提交的值就是用户输入的内容(而不是从自动完成下拉列表中选择的内容)。这似乎工作的woraround是:
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.label);
$("#searchForm").submit(); }
});
当自动完成提交我的表单时,我会产生相反的影响,但我不希望它有任何建议? – Robert 2016-08-20 17:12:55
$("#searchField").result(function(event, data, formatted) {
$(this).closest("form").submit();
});
的searchField已经填充了选定的领域,所以没有必要再做一次在此功能。
正式文件:http://docs.jquery.com/Plugins/Autocomplete/result#handler
我不能对@handsofaten回答评论,所以我会加重他的答案在这里。使用值而不是标签可能更有意义,因为在某些情况下,我的情况是,标签不是用户想要搜索数据库的用途。
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.value);
$("#searchForm").submit(); }
});
select: function(event, ui) {
if(ui.item){
$(event.target).val(ui.item.value);
}
$(event.target.form).submit();
});
考虑提供解释给你的答案 – arghtype 2014-12-16 11:38:56
您提交通过调用Submit按钮ID在这个领域,即使代码在其他页面也选择存档。
document.getElementById('submit').click();
简而言之:定义一个回调函数并使用javascript在回调函数中提交表单。不知道如何在代码中做到这一点。 – Natrium 2010-02-04 09:43:10