**搬到这里:
numerous similar AJAX suggestion boxes without ID's
不久前,我付钱给我建立了一个jQuery AJAX建议框脚本。效果很好。现在,我试图对它进行足够的了解以修改它以执行其他操作。
现在,生成建议的脚本只接受查询文本,并且每次都执行相同的检查。现在,我希望能够传递其他信息,以便在搜索框的每个实例中查找不同的内容。
HTML ...简单,明显。
<input class="suggest" name="q" type="text" autocomplete="off" />
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]
}
代替:
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" />
这有意义吗?
多谢你们。我只了解OOL和javascript的“那么多”,所以我正在学习...
++++++++++++++++++++++++++++
更新
这些不起作用...
//来源:'/ suggest /?q ='+ \ $('input [name = q]')。val(),minLength:3,
//来源:'/ suggest /?q ='+ \ $('input [type =“ text”] [name =“ q”]')。val(),minLength:3,
//来源:'/ suggest /?q ='+ \ $('input [type =“ text”]')。val(),minLength:3,
//来源:'/ suggest /?q ='+ \ $('input:text')。val(),minLength:3,
//来源:'/ suggest /?q ='+ \ $('input [type = text]')。val(),minLength:3,
...但是确实如此...
source:'/suggest/?q='+'alex', minLength:3,
有任何想法吗?
最佳答案
您可能可以使用jQuery的.serialize()
方法。该文档指出它将:
将一组表单元素编码为要提交的字符串。
听起来像您要执行的操作。您可以尝试如下操作:
$('.suggest').autocomplete({
source:'output.php?' + $("#MY_FORM_ID").serialize(), minLength:3,
focus: function (event, ui) {
$(event.target).val(ui.item.label);
return false;
}
});
编辑:请注意,使用字符串作为
source
不会导致URL随着输入值的变化而动态变化。为此,您需要使用回调函数并自己方便地进行请求/响应。我上面显示的代码将在实例化自动完成小部件时使用MY_FORM_ID
的值。