将其他表单元素传递给ajax建议框脚本

pass other form elements to ajax suggestion box script

本文关键字:ajax 脚本 其他 表单 元素      更新时间:2023-09-26

**移至此处:许多类似的没有ID's的AJAX建议框


我付钱给别人建立我一个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's和javascript的"这么多",所以我正在学习…

++++++++++++++++++++++++++

更新

这些不工作…

//来源:'/建议/? q = ' + ' $("输入[name = q]").val(),最小长度:3,

//来源:'/建议/? q = ' + ' $('输入(type = "文本"][name = "问"]').val(),最小长度:3,

//来源:'/建议/? q = ' + ' $("输入(type = "文本"]").val(),最小长度:3,

//来源:'/建议/? q = ' + ' $("输入:文本").val(),最小长度:3,

//来源:'/建议/? q = ' + ' $("输入(type =文本)").val(),最小长度: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;
    }
});

EDIT:请注意,使用字符串作为source不会导致URL随着输入的值而动态改变。要做到这一点,您需要使用回调函数并自己简化请求/响应。我上面展示的代码将在实例化自动完成小部件时使用MY_FORM_ID的值。

我想这就是你要找的:

$('.suggest').autocomplete({
    source:'output.php?arg1='+$('input[name=arg1]').val()+'&arg2='+$('input[name=arg2]').val(), minLength:3,
});