JQuery 自动完成未显示所有结果
JQuery Autocomplete does not show all the results
我整天都在面对以下问题,希望得到任何建议。
我正在写 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);
});
但是也没用。我可以知道是什么导致了这个问题吗?
我变了
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)
同时显示预期结果作为验证。
我整天都在面对以下问题,希望得到任何建议。
我正在写 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);
});
但是也没用。我可以知道是什么导致了这个问题吗?
我变了
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)
同时显示预期结果作为验证。