2015-01-04 74 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。