【问题标题】:pass other form elements to ajax suggestion box script将其他表单元素传递给 ajax 建议框脚本
【发布时间】:2012-01-02 10:47:08
【问题描述】:

** 移至此处: 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 的了解“这么多”,所以我正在学习...

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

更新

这些都行不通……

// source:'/suggest/?q='+\$('input[name=q]').val(), minLength:3,

// source:'/suggest/?q='+\$('input[type="text"][name="q"]').val(), minLength:3,

// source:'/suggest/?q='+\$('input[type="text"]').val(), minLength:3,

// source:'/suggest/?q='+\$('input:text').val(), minLength:3,

// source:'/suggest/?q='+\$('input[type=text]').val(), minLength:3,

...但这确实...

    source:'/suggest/?q='+'alex', minLength:3,

有什么想法吗?

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    您也许可以使用 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 的值。

    【讨论】:

      【解决方案2】:

      我想这就是你要找的:

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

      【讨论】:

      • 我试过这个...(请参阅对原始帖子的编辑)我一定遗漏了一些东西...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      相关资源
      最近更新 更多