12

我发现新的<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 和数字输入,但我更喜欢独立于所有这些的通用解决方案。

4

2 回答 2

0

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

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

于 2013-02-06T11:01:15.417 回答
0

从包含 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>
于 2021-12-16T15:21:43.190 回答