jQuery UI自动完成过滤器数据

时间:2012-08-13 06:22:35

标签: jquery jquery-ui-autocomplete

我是jquery的新手,我被指派在选择项目后过滤掉列表。有3个文本框使用自动完成功能。

来源:苹果,橙子,芒果

textbox 1 = apple 文本框2 = apple应该在列表中过滤掉。它应该只显示橙色和芒果。

我能够过滤源,但列表仍然显示该项目。但是一旦刷新页面,源就会更新。我发现了这个问题,这里是a link,但在我的情况下,我想过滤掉它,而不是添加。

感谢任何帮助。

谢谢! 泽尔

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

在每个文本框已更改事件上,您必须从列表中删除该项并调用该函数(从插件中)。您必须一次调用所有这三个函数。