JQuery自动完成功能不会显示所有结果

时间:2017-07-13 20:43:10

标签: jquery regex jquery-ui autocomplete jquery-ui-autocomplete

我整天都面对以下问题,并希望得到任何建议。

我正在编写JQuery自动完成功能,它只显示部分结果,但不显示arraylist的所有结果。

当我在customFilter函数中调试时,我看到array包含每行中的预期字符串,而term具有来自文本框的正确输入数据。

function customFilter(array, terms) {
    arrayOfTerms = terms.split(" ");
    var term = $.map(arrayOfTerms, function (tm) {
         return $.ui.autocomplete.escapeRegex(tm);
    }).join('|');
   var matcher = new RegExp("\\b" + term, "i");
    return $.grep(array, function (value) {
       return matcher.test(value.label || value.value || value);
    });
};

$( "#frmCode" ).autocomplete({
  multiple: true,
  mustMatch: false,
  minLength: 2,
  source: function (request, response) {
    response(customFilter(
    availableCode, request.term));
  }
});

我试过

var a = $.grep(autoData, function(value){
  var matcher = new RegExp("\\b" + term, "i");
  return matcher.test(term);
});

但它也没有用。我可以知道是什么导致了这个问题吗?

1 个答案:

答案 0 :(得分:0)

我改变了

var matcher = new RegExp("\\b" + term, "i"); 

var matcher = new RegExp("" + term, "i"); 

现在正在运作。

console.log("result - " + matcher.test(value.label || value.value || value));

console.log("value - " + value) 

也显示预期结果作为验证。