**搬到这里:
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的值。

09-25 20:33