【发布时间】:2016-09-13 19:34:04
【问题描述】:
我有两个元素,一个datalist 和一个input:
<datalist id="choices"></datalist>
<input id="custom_id" name="custom_name" type="text" value="" list="choices" class="medium-field"/>
此外,这是一个 AJAX 请求,它填充数据列表(这有效;不是我的问题)
var params = {
"partial": $("#custom_id").value;
};
$.ajax({
cache: true,
url: "http://www.example.com",
type: "POST",
data: JSON.stringify(params), // contains the input.value
contentType: "application/json",
headers: {
"Range": "0-9"
},
dataType: "json",
processData: false,
// On success, create <option> elements and append them to datalist
success: function(data) { .. };
REST 端点返回的数据格式如下:
[
{
"label": "active",
"name": "iron"
},
..
]
基本上,AJAX 请求会在 PostgreSQL 数据库前面命中一个 REST 端点,该数据库确实根据提供的 partial 参数运行 SELECT,并返回一个 2 列表(其格式为上述响应)。
但是,我遇到了从AJAX 请求返回的数据与用户输入的拼写不同的情况;例如,当input.value = 'magnet' 时,我有时会返回一个选项列表,其中一些可能会显示为'iron'。
问题:由于'iron' 与'magnet' 的拼写不同,用户不会在数据列表下拉列表中看到此选项(即使创建了选项元素),除非用户实际上是类型 'iron'。有没有办法让我在数据列表中显示'iron',即使它与用户输入的内容不匹配?
【问题讨论】:
-
我不禁认为这个问题缺少一些东西 - 您可以向我们提供您在 AJAX 请求中遇到的查询,这是用户键入时返回的数据有效负载的示例
iron或magnet -
@Alex 我已经更新了问题
-
您说即使创建了该选项也没有显示该选项-您如何在服务器/客户端上过滤此数据。这里仍然没有足够的信息
-
听起来不像使用
<datalist>是适合这项工作的工具,因为您必须依靠浏览器进行匹配
标签: javascript jquery