5

我正在使用 html datalist 来自动填充一些数据。我想要一种行为,它应该过滤除一个默认值之外的所有内容。下面是示例代码:

<input type="text" list="mylist"/>
<datalist id="mylist">
    <option value="San Jose"></option>
    <option value="San Francisco"></option>
    <option value="New York"></option>
    <option value="Chicago"></option>
    <option value="Boston"></option>
    <option value="Los Angeles"></option>
</datalist>

在上面的事情中,默认情况下,如果我输入 s,它只会显示 San Jose 和 San Francisco,当我输入 n 时,它只会显示 New York。

我的要求是,在任何情况下,无论键入什么,它都应该始终显示 San Jose(默认情况下),然后过滤其余元素。

示例:键入 B,应同时显示 San Jose 和 Boston,因为 San Jose 是我的默认值,Boston 是输入框中的过滤值。

这可能吗 ?如果没有,实现相同结果的替代方法是什么?

JSFiddle

如果需要,我可以使用 Javascript/Jquery。但是,我不能使用任何自动完成插件。

4

1 回答 1

3

如果不使用自定义插件,这是不可能的。datalist支持充其量仍然是平庸的,目前没有办法影响显示的选项。

有一些浏览器实现差异甚至不会受到影响(Chrome 仅在选项开始时匹配,FireFox 也匹配其中其他任何地方的文本)。没有办法改变这一点,更不用说添加自定义方式来显示某些建议了。

于 2015-05-05T13:46:18.833 回答