实际上无法从 autocomplete.js 搜索结果中 select
Unable to actually select from autocomplete.js search results
我正在使用 autoComplete.js 并且有有效的搜索结果列表。但是,正如标题所述,我实际上无法 select 任何搜索结果。下面列出了我当前的代码。我没有更改 autoComplete.js 文件。如果有人能帮忙解决这个问题,我将不胜感激^^
(如果有兴趣,完整的回购是在:https://github.com/shonb6570/Tech-Degree-Project-7)
来自 index.js 文件的代码:
document.querySelector("#autoComplete").addEventListener("autoComplete", function (event) {
console.log(event.detail);
});
const membersText = document.querySelectorAll('.members .members-container .members-text p');
let members = [];
membersText.forEach(memberText => {
members.push(memberText.textContent.toLowerCase());
});
const autoCompletejs = new autoComplete({
data: {
src: members,
},
resultsList: {
render: true,
container: source => {
source.setAttribute("id", "user-names");
},
destination: document.querySelector("#autoComplete"),
position: "afterend",
element: "ul"
},
maxResults: 5,
highlight: true,
resultItem: {
content: (data, source) => {
source.innerHTML = data.match;
},
element: "li"
},
});
我自己找到了答案(在更高级的程序员的帮助下)。我希望这对其他人有帮助。 "feedback" 部分需要设置如下,以允许选择结果并将其设置为搜索输入的值(使它们在单击时出现在搜索中)。
见下面的附加代码:
document.querySelector("#autoComplete").addEventListener("autoComplete", function (event) {
console.log(event.detail);
});
const membersText = document.querySelectorAll('.members .members-container .members-text p');
let members = [];
membersText.forEach(memberText => {
members.push(memberText.textContent.toLowerCase());
});
const autoCompletejs = new autoComplete({
data: {
src: members,
},
resultsList: {
render: true,
container: source => {
source.setAttribute("id", "user-names");
},
destination: document.querySelector("#autoComplete"),
position: "afterend",
element: "ul"
},
maxResults: 5,
highlight: true,
resultItem: {
content: (data, source) => {
source.innerHTML = data.match;
},
element: "li"
},
//added code
onSelection: feedback => {
feedback.event.preventDefault();
document.querySelector("#autoComplete").value = feedback.selection.value;
}
});
我正在使用 autoComplete.js 并且有有效的搜索结果列表。但是,正如标题所述,我实际上无法 select 任何搜索结果。下面列出了我当前的代码。我没有更改 autoComplete.js 文件。如果有人能帮忙解决这个问题,我将不胜感激^^
(如果有兴趣,完整的回购是在:https://github.com/shonb6570/Tech-Degree-Project-7)
来自 index.js 文件的代码:
document.querySelector("#autoComplete").addEventListener("autoComplete", function (event) {
console.log(event.detail);
});
const membersText = document.querySelectorAll('.members .members-container .members-text p');
let members = [];
membersText.forEach(memberText => {
members.push(memberText.textContent.toLowerCase());
});
const autoCompletejs = new autoComplete({
data: {
src: members,
},
resultsList: {
render: true,
container: source => {
source.setAttribute("id", "user-names");
},
destination: document.querySelector("#autoComplete"),
position: "afterend",
element: "ul"
},
maxResults: 5,
highlight: true,
resultItem: {
content: (data, source) => {
source.innerHTML = data.match;
},
element: "li"
},
});
我自己找到了答案(在更高级的程序员的帮助下)。我希望这对其他人有帮助。 "feedback" 部分需要设置如下,以允许选择结果并将其设置为搜索输入的值(使它们在单击时出现在搜索中)。
见下面的附加代码:
document.querySelector("#autoComplete").addEventListener("autoComplete", function (event) {
console.log(event.detail);
});
const membersText = document.querySelectorAll('.members .members-container .members-text p');
let members = [];
membersText.forEach(memberText => {
members.push(memberText.textContent.toLowerCase());
});
const autoCompletejs = new autoComplete({
data: {
src: members,
},
resultsList: {
render: true,
container: source => {
source.setAttribute("id", "user-names");
},
destination: document.querySelector("#autoComplete"),
position: "afterend",
element: "ul"
},
maxResults: 5,
highlight: true,
resultItem: {
content: (data, source) => {
source.innerHTML = data.match;
},
element: "li"
},
//added code
onSelection: feedback => {
feedback.event.preventDefault();
document.querySelector("#autoComplete").value = feedback.selection.value;
}
});