Javascript 将其他表单元素传递给ajax建议框脚本
**搬到这里:Javascript 将其他表单元素传递给ajax建议框脚本,javascript,jquery,ajax,Javascript,Jquery,Ajax,**搬到这里: 不久前,我花钱请人为我构建了一个jQueryAjax建议框脚本。它工作得很好。现在,我正试图了解它足够的修改它做一些不同的事情 现在,生成建议的脚本只接受查询文本,并且每次都执行相同的检查。现在,我希望能够传递额外的信息,以便在搜索框的每个实例中查找不同的内容 HTML。。。简单,显而易见 <input class="suggest" name="q" type="text" autocomplete="off" /> 而不是: source:'output.p
不久前,我花钱请人为我构建了一个jQueryAjax建议框脚本。它工作得很好。现在,我正试图了解它足够的修改它做一些不同的事情 现在,生成建议的脚本只接受查询文本,并且每次都执行相同的检查。现在,我希望能够传递额外的信息,以便在搜索框的每个实例中查找不同的内容 HTML。。。简单,显而易见
<input class="suggest" name="q" type="text" autocomplete="off" />
而不是:
source:'output.php', minLength:3,
我想:
source:'output.php?arg1=blah1&arg2=blah2', minLength:3,
其中arg1和arg2以以下形式传递
<input class="suggest" name="q" type="text" autocomplete="off" />
<input type="hidden" name="arg1" value="blah1" />
<input type="hidden" name="arg2" value="blah2" />
有什么想法吗?我想这就是你想要的:
$('.suggest').autocomplete({
source:'output.php?arg1='+$('input[name=arg1]').val()+'&arg2='+$('input[name=arg2]').val(), minLength:3,
});
您也许可以使用jQuery的方法。文件规定,它将: 将一组表单元素编码为字符串以供提交 这听起来像是你想要做的。您可以尝试以下方法:
jQuery(document).ready(function()
{
$('.suggest').autocomplete(
{
source:'output.php', minLength:3,
focus: function (event, ui)
{
$(event.target).val(ui.item.label);
return false;
}
}
);
[snip]
}
$('.suggest').autocomplete({
source:'output.php?' + $("#MY_FORM_ID").serialize(), minLength:3,
focus: function (event, ui) {
$(event.target).val(ui.item.label);
return false;
}
});
编辑:请注意,使用字符串作为源
不会导致URL随输入值动态更改。要做到这一点,您需要使用一个回调函数,并自己简化请求/响应。我上面显示的代码将在自动完成小部件实例化时使用MY\u FORM\u ID
的值。我尝试了这个。。。(见编辑到原始帖子)我一定是漏掉了什么。。。
$('.suggest').autocomplete({
source:'output.php?' + $("#MY_FORM_ID").serialize(), minLength:3,
focus: function (event, ui) {
$(event.target).val(ui.item.label);
return false;
}
});