【问题标题】:jQuery UI autocomplete filter datajQuery UI 自动完成过滤数据
【发布时间】:2012-08-13 06:22:35
【问题描述】:
我是 jquery 的新手,一旦选择了项目,我就被分配过滤掉列表。有 3 个文本框使用自动完成功能。
来源:苹果、橙子、芒果
文本框 1 = 苹果
文本框 2 = apple 应该在列表中被过滤掉。它应该只显示橙色和芒果。
我能够过滤源,但列表仍显示该项目。但是一旦我刷新页面,源就会更新。我发现了这个问题,这里是a link,但在我的情况下,我不想添加,而是想将其过滤掉。
感谢任何帮助。
谢谢!
泽尔
【问题讨论】:
标签:
jquery
jquery-ui-autocomplete
【解决方案1】:
我会做什么...将第一个文本框的值传回服务器(反之亦然,每次自动完成)
你可以试试这样的。
JQuery
$('#auto2_id').autocomplete({
source: function (request, response) {
$.ajax({
url: 'some_url/SomeAction',
dataType: "json",
data: {
term: request.term,
filter: $('#auto1_id').val()
},
success: function (data) {
//do something
}
})
}
});
服务器端
(不确定您使用的是什么语言。
但在 c# 中(粗略的代码示例))
public ActionResult SomeAction(string term, string filter)
{
var data = _repo.GetAllCached().Where(o => o.Text != filter && o.Text.Contains(term));
return Json(data , JsonRequestBehavior.AllowGet);
}
【解决方案2】:
在每个文本框更改事件中,您必须从列表中删除该项目并调用函数(从插件中)。您一定是同时调用了所有三个函数。