0

我是 jquery 的新手,一旦选择了项目,我就被分配过滤掉列表。有 3 个文本框使用自动完成功能。

来源:苹果、橙子、芒果

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

我能够过滤源,但列表仍然显示该项目。但是一旦我刷新页面,源就会更新。我发现了这个问题,这是一个链接,但就我而言,我不想添加,而是想将其过滤掉。

任何帮助表示赞赏。

谢谢!泽尔

4

2 回答 2

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);
}
于 2012-08-13T08:21:46.510 回答
0

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

于 2012-08-13T08:07:49.180 回答