javascript - 使用来自 Javascript 数据库的数据创建自动完成下拉列表

标签 javascript json autocomplete dropdown

我想创建一个小型 Web 应用程序,其中包含使用 Javascript 搜索电影的功能。我想在搜索电影名称时,该函数完成其余部分。但是我做不到。

例如:

我写了“bat”,函数完成了“man”。这就像谷歌搜索。我写了“堆栈”,谷歌在下拉列表中完成了“溢出”。

所以这是我的脚本代码:

var dataList = document.getElementById('json-datalist');

var input = document.getElementById('ajax');

var request = new XMLHttpRequest();

request.onreadystatechange = function(response) {
if (request.readyState === 4) {

  var jsonOptions = JSON.parse(request.responseText);

  jsonOptions.forEach(function(item) {

    var option = document.createElement('option');

    option.value = item;

    dataList.appendChild(option);
  });
 else {

  input.placeholder = "Couldn't load datalist options ";
  }
 }
};

request.open('GET', 'url', true);
request.send();

HTML代码:

    <form>
       <p> Movie name: </p>
<input type="text" id="ajax" list="json-datalist" placeholder="e.g. Spider-Man">
<datalist id="json-datalist"></datalist>

最佳答案

我已经验证上面的代码工作正常。现在,您从服务器发送数据的方式可能存在问题。

问题可能出在下一行。

option.value = item;

检查你的 json 对象,你是如何发回数据的。例如,如果对象中有一个属性,那么您应该如下使用它;

option.value = item.value; => name of element

关于javascript - 使用来自 Javascript 数据库的数据创建自动完成下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45687696/

相关文章:

bash - 动态参数值取决于另一个动态参数值

mysql - 如何在 mysql 查询中处理 json

java - 从JSONarray中获取具体值

ios - SwiftyJson 添加到对象/数组的末尾

autocomplete - Google 自动完成 - 输入以选择

JQuery 自动完成文本框

javascript - 如何在两个对象不相互引用的情况下将一个对象复制到另一个对象上?

javascript - $.getJSON 解析器错误尝试调用 API

javascript - 将所有innerText从页面拉入json的最佳方法?

javascript - 如何将禁用的选项 DOM 元素切换为启用?