Je suis confronté au problème ci-dessous toute la journée et apprécierais tout conseil.
J’écris JQuery autocomplete et il ne montre que des résultats partiels, mais pas tous les résultats de arraylist.
Lorsque je débogue dans la fonction customFilter, le array
contient la chaîne attendue dans chaque ligne et le term
contient les données d’entrée correctes dans la zone de texte.
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)); } });
j’ai essayé
var a = $.grep(autoData, function(value){ var matcher = new RegExp("\\b" + term, "i"); return matcher.test(term); });
mais cela n’a pas fonctionné non plus. Puis-je savoir ce qui cause ce problème?
j’ai changé
var matcher = new RegExp("\\b" + term, "i");
à
var matcher = new RegExp("" + term, "i");
et cela fonctionne maintenant.
console.log("result - " + matcher.test(value.label || value.value || value)); console.log("value - " + value)
affiche le résultat attendu comme vérification également.