删除jquery多个自动完成ajax中已选择的值

问题描述 投票:3回答:3

如何删除jQuery多个自动完成列表中已选择的值?

例如,如果我选择了word A,则下次键入时不应出现在列表中。另外,如果有人尝试使用Backspace键删除该元素,则该元素应重新出现在自动完成列表中。

$(function() {
  function split(val) {
    return val.split(/,\s*/);
  }

  function extractLast(term) {
    return split(term).pop();
  }

  $("#birds").on("keydown", function(event) {
    if (event.keyCode === $.ui.keyCode.TAB &&
      $(this).autocomplete("instance").menu.active) {
      event.preventDefault();
    }
  }).autocomplete({
    source: function(request, response) {
      $.getJSON("search.php", {
        term: extractLast(request.term)
      }, response);
    },
    select: function(event, ui) {
      var terms = split(this.value);
      terms.pop();
      terms.push(ui.item.value);
      terms.push("");
      this.value = terms.join(", ");
      return false;
    }
  });
});
jquery autocomplete jquery-ui-autocomplete
3个回答
2
投票

如果您存储id和文本也可能会更好,为什么当您发出ajax请求将它们传递并在服务器端处理它们时,也为什么不存储]。>

some_array = array();
$('[your-list]').keyup(function(e) {
  var text = $(this).text();
  // key backspace is released
  if(e.keyCode == 8)
    some_array.push(text);
});

1
投票

好,所以我已经制作了此代码段,它应该可以根据您的需要工作。我已经从jquery ui autocomplete site


0
投票

也许这可以满足您的要求:

© www.soinside.com 2019 - 2024. All rights reserved.