具有多个输入的jQuery自动完成

时间:2010-01-05 01:42:15

标签: jquery asp.net-mvc autocomplete

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

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

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

演示页面在这里:

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

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

没关系,但我也在使用ASP.NET MVC。

3 个答案:

答案 0 :(得分:3)

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

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

希望这有帮助。

答案 1 :(得分:0)

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

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

jquery-autocomplete-other-fields

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

埃里克

答案 2 :(得分:0)

更好的解决方案是在你的参数中添加extraParams回调函数

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