如何在Jquery自动完成上覆盖用户输入?

时间:2016-10-09 02:02:32

标签: javascript jquery autocomplete

我有一个简单的自动完成功能,可以搜索对象数组。它工作正常,但我想覆盖用户正在搜索的内容。

我想在搜索中添加其他输入值。例如,如果他们搜索了#34; cat",我想追加$('#input2').val(),以便他们的搜索成为" cat dog" (不改变实际< input>的值)。

这似乎是一件容易的事,但我无法在不覆盖整个搜索方法的情况下弄清楚如何做到这一点。

现有代码:

$("#search").autocomplete({
    source: data,
    appendTo: '#admin-results'
}).data("ui-autocomplete")._renderItem = function(ul, item) {
  return $('<li>')
  .append('<div>' + item.label + '</div>')
  .appendTo(ul);
};

2 个答案:

答案 0 :(得分:2)

以下将使用source

功能执行您的要求
var terms = ["c++", "java dog", "php dog", "coldfusion", "javascript dog", "asp dog", "ruby"]
$("#autocomplete").autocomplete({
  source: function(req, response) {
    var term = req.term + ' dog';// adjust to a dom value or whatever
    var res = terms.filter(function(item) {
      return item.toLowerCase() === term.toLowerCase()
    });
    response(res);
  }
});

也相应调整滤镜功能。这只是绝对匹配的粗略

DEMO

答案 1 :(得分:0)

1.来自#admin-results的val。将val放入变量&#34; a&#34;。
2.a = a + desiredVal
输入新的&#34; a&#34;进入#admin- results