2015-01-04 31 views
12

我注意到,当您将它连接到数据列表时,不同的浏览器在为文本字段建议值时会有不同的行为。某些浏览器显示的条目完全是开头的内容(IE,chrome),而另一些则显示包含的条目您输入的子字符串(firefox)。html datalist元素自动建议行为

例如,键入i到文本框,并观察建议:

browser: 
 
<datalist id="browsers"> 
 
    <option value="Google Chrome">Google Chrome</option> 
 
    <option value="Internet Explorer">Internet Explorer</option> 
 
    <option value="Firefox">Firefox</option> 
 
    <option value="Opera">Opera</option> 
 
    <option value="Safari">Safari</option> 
 
    <option value="Others">Others?</option> 
 
</datalist> 
 
<input type="text" name="browser" list="browsers">

(或这里有一个小提琴,如果你喜欢http://jsfiddle.net/yaj8ut3m/

在Chrome和IE,它只会建议Internet Explorer,但Firefox会建议Internet Explorer,FirefoxSafari

有什么方法可以指定使用哪种自动建议过滤行为?

注:JavaScript的解决方案是不能接受的

+0

我想,没有办法改变这种行为,因为每个浏览器都有不同的实现。我无法找到任何有关建议标准的规定。 – zoonman

+0

@zoonman ya我在规格中也找不到任何东西。这真的很不幸,因为我觉得缺乏配置会真正限制有多少人使用此功能。 – goat

+0

“JavaScript解决方案不可接受”......这甚至不是一个严肃的问题。它可能是一个理论性的练习,也可能是一个标准特征请求,它似乎是提高意识的一个问题。我为你做了一个练习 - 命名一个实现这个html5特性的用户代理,并且不支持javascript ..然后继续并考虑所有支持javascript的用户代理,而不实现这个html5特性。 –

回答

4

这是unspecified选项。

而素有issue

If you type "V" the list will show only items that start with "V" in Chrome, Opera and IE, and any <option> containing "V" in Firefox. 
2

如果问题是:

“是否有某种方式来指定自动提示过滤行为,以便使用

注:JavaScript的解决方案是不可接受的“

答案会(可惜)是:没有,这取决于浏览器的实现和datalist标签没有任何属性。

我不得不说是充满了“插件”,相对简单地写一个,但使用js。