在运行时更改源以进行自动完成

时间:2011-04-12 13:09:08

标签: jquery autocomplete jquery-ui-autocomplete

我打算为多个来源实现jquery-ui-autocomplete。这是我的场景:我希望根据某些条件拥有多个自动完成源。这是我的代码:

var arrLookup = ['a', 'b', 'c', 'd'];
var arrA = ['a1', 'a2', 'a3', 'a4'];
var arrB = ['b1', 'b2', 'b3', 'b4'];
var arrC = ['c1', 'c2', 'c3', 'c4'];
var arrD = ['d1', 'd2', 'd3', 'd4'];

$('#txt').autocomplete({
   source: function (request, response) {
         // delegate back to autocomplete, but extract the last term
         response($.ui.autocomplete.filter(arrLookup, request.term.split(/,\s*/).pop()));
   },
   minLength: 1,
   select: function (event, ui) {
      var terms = split(this.value);
      // remove the current input
      terms.pop();
      // add the selected item
      terms.push(ui.item.value);
      // add placeholder to get the comma-and-space at the end
      this.value = terms.join(", ");
      return false;
   }
});

现在我想要的是,最初自动完成源应该是arrLookup。如果我选择a,如果选择b,则源应该被修改为arrA;他将源代码修改为arrB,依此类推。现在因为它将是一个多值自动完成,一旦我点击“,”源切换回arrLookup。任何人都可以帮助我切换源。我知道它只能通过来源,但我无法得到正确的条件。

1 个答案:

答案 0 :(得分:0)

您可能想尝试使用jQuery自动完成插件(具有“setOptions”方法)而不是jQuery-ui插件。

查看此 post 了解详情。

更新: Here是另一个在使用jQuery-ui时如何执行此操作的示例。看看这个家伙最后发表的最后帖子。