我有一个自动填充字段,我希望通过提供类别的下拉来增加,希望这使搜索更容易。这将从下拉列表中获取类别ID,然后将其与搜索文本一起传递到我的服务器端自动完成功能。
我正在使用此处的jQuery自动完成插件:
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
演示页面在这里:
http://jquery.bassistance.de/autocomplete/demo/
也许已经在演示中以某种方式对此进行了解释,但我只是没有看到它。我能够从JSON中获取数据并将其拆分为多个字段。
没关系,但我也在使用ASP.NET MVC。
答案 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() }
},