【问题标题】:jQuery Autocomplete with multiple inputs带有多个输入的 jQuery 自动完成
【发布时间】:2011-01-01 11:54:45
【问题描述】:

我有一个自动完成字段,我还想通过提供一个类别下拉列表来扩充它,希望这能让搜索变得更容易。这将从下拉列表中获取类别 ID,然后将其与搜索文本一起传递到我的服务器端自动完成功能。

我正在使用此处找到的 jQuery 自动完成插件:

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

演示页面在这里:

http://jquery.bassistance.de/autocomplete/demo/

也许这已经在演示中以某种方式进行了解释,但我只是没有看到它。我能够从 JSON 中获取数据并将其拆分为多个字段。

没关系,不过我也在用 ASP.NET MVC。

【问题讨论】:

    标签: jquery asp.net-mvc autocomplete


    【解决方案1】:

    自动补全插件的第一个参数可以是数组或url。您所要做的就是将您的类别 ID 作为查询字符串参数提供给您的自动完成功能。

    var selectedCategory = $('.categories').val();
    var query = '';
    if (selectedCategory !== 0)
    {
       query = '?category=' + selectedCategory;
    }
    $("#suggest4").autocomplete('search_service.svc' + query, {
       // options   
    });
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      上一个答案是正确的 1/2。问题在于,当调用 .autocomplete() 时,会立即评估 url + 查询,这意味着在调用自动​​完成时将始终使用当前选择的类别值。这意味着如果用户选择了不同的类别,则不会在查询命令行上传递新值。

      请参阅此博客条目以获取我的补丁,该补丁允许您传递函数而不是 url,并且仍然使用类似于上面 Bendewey 示例的代码。

      jquery-autocomplete-other-fields

      注意:我试图在此处发布补丁,但一切都搞砸了。

      埃里克

      【讨论】:

        【解决方案3】:

        更好的解决方案是将 extraParams 回调函数添加到您的参数中

        extraParams: {
          data: function(){ return new Date().getTime() }
        },
        

        【讨论】:

          猜你喜欢
          • 2012-07-10
          • 1970-01-01
          • 2014-08-30
          • 2013-01-19
          • 2018-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多