**搬到这里: 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,
有什么想法吗?
答案 0 :(得分:0)
我认为这就是你要找的东西:
$('.suggest').autocomplete({
source:'output.php?arg1='+$('input[name=arg1]').val()+'&arg2='+$('input[name=arg2]').val(), minLength:3,
});
答案 1 :(得分:0)
您可以使用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
的值。