如何使用 javascript 显示数据列表建议?

Posted

技术标签:

【中文标题】如何使用 javascript 显示数据列表建议?【英文标题】:How to show datalist suggestions using javascript? 【发布时间】:2013-01-01 02:50:15 【问题描述】:

我发现新的<datalist> 通常非常有用,但我认为这些建议不够明显。有没有办法使用 javascript 触发数据列表建议的显示?

例如,我在 <input type="number"> (jsFiddle) 上有一个数据列表。

<label>
    Enter a Fibonacci number:
    <input type="number" list="fibonacci" min="0" id="myinput">
</label>
<datalist id="fibonacci">
    <option value="0">
    <option value="1">
    <option value="2">
    <option value="3">
    <option value="5">
    <option value="8">
    <option value="13">
    <option value="21">
</datalist>
<button type="button" id="show-suggestions">Show suggestions</button>

<script>
$('#show-suggestions').click(function() 
    // .showSuggestions() does not exist.
    // I'd like it to display the suggested values for the input field.
    $('#myinput').showSuggestions();
);
</script>

在 Chrome 中,仅当输入为空、已获得焦点且用户单击输入时,才会显示完整的建议列表。向下箭头不显示建议 - 它只是减少值。

我想让这些建议更明显。作为示例,我添加了一个应该打开建议列表的按钮。我在 onClick 处理程序中放了什么?

我在本例中使用了 Chrome、jQuery 和数字输入,但我更喜欢独立于所有这些的通用解决方案。

【问题讨论】:

【参考方案1】:

如果您删除 type="number",您的用户可以使用基本的 alt+downarrow 键盘快捷键获取下拉列表。

如果这对您不起作用。我建议使用混合方法,例如https://github.com/mmurph211/Autocomplete

【讨论】:

【参考方案2】:

从包含 200 多个选项的列表中选择您所在的国家/地区是自动完成控件的理想候选者。直接在 HTML 页面中为每个国家/地区定义一个带有子元素的:

 <datalist id="countrydata">
       <option>Afghanistan</option>
       <option>Åland Islands</option>
       <option>Albania</option>
       <option>Algeria</option>
       <option>American Samoa</option>
       <option>Andorra</option>
       <option>Angola</option>
       <option>Anguilla</option>
       <option>Antarctica</option>
       ...etc...
    </datalist>

【讨论】:

您可以通过阅读this article来改进您的问题。

以上是关于如何使用 javascript 显示数据列表建议?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Javascript根据先前的下拉值显示第二个下拉列表

如何使用 javascript 将 API 数据转换为 react-native 中的部分列表数据

如何在下拉列表中添加文本字段自动建议?

如何仅使用 HTML 和 Javascript 在本地网页上显示文件夹列表? [关闭]

如何使用 jQuery 或 Javascript 从其他下拉列表中显示/隐藏相同的选项

使用 JavaScript 和 Jquery 在下拉列表中显示后端数据