2012-07-21 90 views
98

我剛剛開始使用HTML5的新表單輸入字段來處理HTML5。當我使用表單輸入字段時,尤其是<input type="text" /><input type="search" /> IMO,在包括Safari,Chrome,Firefox和Opera在內的所有主流瀏覽器中沒有任何區別。搜索字段的行爲也像普通的文本字段。輸入類型=「文本」vs輸入類型=「搜索」在HTML5中

那麼,HTML5中的input type="text"input type="search"有什麼區別?

<input type="search" />的真正目的是什麼?

+0

http://www.html5tutorial。info/html5-search.php – 2012-07-21 05:41:38

回答

144

眼下,沒有它們之間存在着巨大的交易 - 也許有永遠不會。然而,重點是讓瀏覽器製造商有能力做一些特殊的事情,如果他們想要的話。

想想手機上的<input type="number">,啓動數字鍵盤,或者撥打type="email"來創建一個特殊版本的鍵盤,使用@和.com等。

在手機上,搜索可能會出現一個內部搜索小程序,如果他們想要的話。

另一方面,它幫助當前的開發人員與CSS。

input[type=search]:after { content : url("magnifying-glass.gif"); } 
+10

+1兩個有效點, 1)'手機內部搜索小程序'。 2)「更好地呈現的能力」。 但是,我應該等待接受答案,因爲我想確保沒有任何其他目的:) – 2012-07-21 08:04:54

+0

現在,沒有。 輸入全部或者只是當前的名字(比如只有部分支持input [type = color]),或者瀏覽器已經實現了自己的特殊處理(如type = number或者type = email或者type = range) 。沒有其他的選擇 - 它要麼由瀏覽器進行特殊處理,要麼沒有。現在,在大多數瀏覽器中,type = search沒有,並且可能不會(除了MAYBE使它看起來像iTunes或其他應用中的搜索框)。目前,它在那裏,因此您可以通過了解它是一個搜索框來添加額外的功能/演示文稿。 – Norguard 2012-07-21 15:07:41

+21

一個區別是在搜索輸入中按[Esc]將清除結果。超級方便,如果您的用戶經常使用它。 – 2014-02-28 02:46:12

26

它在大多數瀏覽器中絕對沒有。它的行爲就像一個 文本輸入。這不是問題。該規範並不要求它做任何特別的事情 。但WebKit瀏覽器確實對待它有點不同 雖然主要與樣式。

默認情況下,WebKit中的搜索輸入具有嵌入邊框,圓角 拐角和嚴格的印刷控制。

此外,

這是不記錄任何地方,我知道的也不是在規範, 但你,如果你輸入添加一個結果參數,將WebKit的應用 一點帶有顯示前 結果的下拉箭頭的放大鏡。

<input type=search results=5 name=s> 

Reference

首先,它提供了一個語義到input type

更新:

Chrome 51 removed support for the results attribute:

+2

Chrome 51取消了對「結果」屬性的支持:https://developers.google.com/web/updates/2016/08/chrome-53-deprecations#remove-results-attribute-for -input-typesearch – Flimm 2016-09-09 16:01:52

0

但它有YOUT輸入元件上的不良影響,如果你設置

<input type="search"> 

而且在你的CSS設置

input {background: url("images/search_bg.gif");} 

它不會showup可言。

3

其實是非常謹慎假定它什麼都不做。當您使用類型搜索來轉換樣式輸入時,他們具有某些無法更改的屬性。嘗試改變一個邊界,你會發現它是不可能的。還有其他幾個不允許的CSS屬性,請查看this瞭解所有細節。

也由Jashwant提到有結果的屬性,但它並不能很好地工作,除非你還包括自動保存屬性。然而,在大多數瀏覽器中,下拉菜單不起作用,因此請自行使用。

7

在某些瀏覽器,它也支持了「結果」和「自動保存」屬性,它提供了自動「最近搜索」用放大鏡圖標功能。

More info

+0

Chrome 51取消了對「結果」屬性的支持:https://developers.google.com/web/updates/2016/08/chrome-53-棄用#刪除-結果的屬性換輸入typesearch – Flimm 2016-09-09 16:02:34

2

有在行動瀏覽器的差異,當你輸入一些單詞,然後在Chrome/Safari瀏覽器鍵入ESC輸入type="search"輸入框將被清除。但在type="text"的情況下,單詞不會被清除。所以要小心選擇類型,特別是當你使用它的自動完成或搜索相關功能

2

加分:input type="search「有能力使用onsearch屬性(雖然我注意到這不適用於微軟新的邊緣瀏覽器),這樣就無需編寫自定義onkeypress=if(key=13) { function() }事情

12

視覺/功能,如果2個不同的輸入類型爲「搜索‘: - 。

  1. 你得到在’X」符號輸入/搜索框的結束清除文本框中
  2. 按下「Esc鍵」鍵在鍵盤上也清除文本
1

這取決於視圖的程序員點,程序員可以很容易地確定通過查看類型的輸入目的,CSS樣式很容易,JavaScript或JQuery可以驗證輸入中的規則。

2

使用INPUT TYPE =「搜索」使keybord enterkey的文戲「搜索」,這可以改善用戶體驗。但是,如果使用此類型,則必須調整樣式。

2

大部分功能都是一樣的,但我們可以看到使用瀏覽器的一個區別是,在SAFARI和CHROME中,輸入有點不同。 它們添加在右側「X」圖標,但它是對於Firefox,IE

總之同樣的事情,爲Firefox,IE,歌劇只針對Safari和Chrome沒有區別。 RAW粘貼數據 大部分功能都是一樣的,但1間的區別,我們可以看到使用的瀏覽器是search輸入是在Safari和Chrome有一點不同。 它們添加在右側「X」圖標,但它是對於Firefox,IE

總之同樣的事情,爲Firefox,IE,歌劇只針對Safari和Chrome沒有區別。