Este es mi código para autocomplete.js (Vanilla). Cuando pego una palabra que no coincide con mi clave, por ejemplo, busco una referencia
AP15305-1552
Si hago un console.log(data) , me devuelve mi matriz con el resultado de mi búsqueda. Cuando compruebo que no aparece resultItem.element, supongo que es porque la búsqueda no coincide con el evento clave si tengo datos.
Esta es la clave si quieres verla.
C15305 - 1552 Nombre del cliente.
Alguien tiene alguna solución para eso?
<div class="autoComplete_wrapper" style="position : relative"> <input id="autoComplete" type="search" dir="ltr" spellcheck=false autocorrect="off" autocomplete="off" autocapitalize="off"> </div> <script> var urlrecherche = 'url' ; const autoCompleteJS = new autoComplete({ data: { src: async (query) => { var url ="webservice/anonymous_PS.asmx/GetJSON?PSname=" + urlrecherche + "&filtre=" ; try { // Fetch Data from external Source const source = await fetch(`${url}${query}`); // Data is array of `Objects` | `Strings` const data = await source.json(); return data; } catch (error) { return error; } }, keys: ["Nom"], cache: false }, resultItem: { element: (item, data) => { item.innerHTML = `<a style="color:#337ab7" href="${data.value.Url}">${data.match}<br><small style="color:gray;">${data.value.object}</small></a>` } }, events: { input: { focus() { if (autoCompleteJS.input.value.length) { autoCompleteJS.start() } } } } }); </script>ACTUALIZAR
Agrego este código antes return data en data.src
for (let i = 0; i < data.length; i++) { if (!data[i].Nom.includes(query) && data.length > 0) { var ul = document.getElementById("autoComplete_list_1") ul.innerHTML = `<li role="option" id="autoComplete_result_${i}"><a style="color:#337ab7" href="${data[i].Url}">${data[i].Nom}<br><small style="color:gray;">${data[i].objet}</small></a></li>` } }No funciona, no agrega mi lista en la ul y lo muestra