【发布时间】:2016-11-17 23:35:51
【问题描述】:
我正在尝试创建一个自动完成搜索框。
它可以工作,但这里有一个问题是,当用户在搜索框中键入时,它不会以第一个字母开头。
如果我在搜索框中输入第一个字母,它将显示所有包含该字母的单词,但我只希望它显示以该字母开头的单词。
我该怎么办?我发现这是在 Firefox 中发生的,但在 chrome 中是可以的。
var dataList = document.getElementById("auto_json_datalist");
// Create a new XMLHttpRequest.
var request = new XMLHttpRequest();
// Handle state changes for the request.
request.onreadystatechange = function(response) {
if (request.readyState === 4) {
if (request.status === 200) {
// Parse the JSON
var jsonOptions = JSON.parse(request.responseText);
// Loop over the JSON array.
jsonOptions.forEach(function(item) {
// Create a new <option> element.
var option = document.createElement("option");
// Set the value using the item in the JSON array.
option.value = item;
// Add the <option> element to the <datalist>.
dataList.appendChild(option);
});
} else {
// An error occured :(
}
}
};
// Set up and make the request.
request.open("GET", "autocompleteSym.json", true);
request.send();
<datalist id="auto_json_datalist"></datalist>
<input type="text" class="enter_sym_c" list="auto_json_datalist" value="" />
【问题讨论】:
-
为项目添加检查以查看它是否以 f 开头,如果不是则返回,如果是则将其添加为选项。
-
如何查看商品?如果用户输入“ap”,那么它应该只显示以“ap”开头的单词。
标签: javascript json ajax autocomplete html-datalist