【问题标题】:Jquery UI, autocomplete, trying to submit selected answer in formJquery UI,自动完成,尝试以表单提交选定的答案
【发布时间】:2014-08-04 07:40:24
【问题描述】:
当用户从输入元素中选择自动完成项时,我似乎无法让表单提交所选值。相反,它提交部分键入的文本。我正在使用 select: 自动完成功能无济于事。 #scustnm 是我的输入元素,#a_comp 是围绕它的表单。谢谢!
if(vsvcus != "")
{
$( "#scustnm" ).autocomplete(
{
source: "S205ai.pgm?task=autoacustfil&WCODE=" + vscmpy + "&vcustnm=" + vsvcus,
minLength: 1,
select: function() {$("#a_comp").submit();}
});
}
【问题讨论】:
标签:
javascript
jquery
html
forms
autocomplete
【解决方案1】:
我建议使用 $.post() 请求而不是表单提交。因此,而不是:
select: function(){$("a_comp").submit();} 你会这样写:
select: function() { $.post("urlToPostDataTo"), {dataID1: $("#dataID1"), dataID2: $("#dataID2")}, function(data, callback){ //do stuff with the output of the page}}
我相信当您提交表单时,表单很可能只使用输入文本字段而不是自动完成建议。通过使用 $.post() 请求,您可以完全控制当用户单击自动完成的选择选项时发布的数据。希望这会有所帮助。
【解决方案2】:
您需要将该值分配回具有自动完成功能的输入,以便表单能够读取它。
在你的 select 函数中,你需要这样的东西:
$( "#scustnm" ).val( /*Return Value Here*/ );
表单不知道您选择了什么,它是从输入框中选择的值,该值永远不会被您的 AJAX 调用更新。因为它只知道您在框中输入的内容,所以它是与表单一起提交的值。