输入类型=“文本”与HTML5中输入类型=“搜索”


132

我刚接触HTML5时就开始使用HTML5的新表单输入字段。当我与形式输入领域的工作,尤其是<input type="text" /><input type="search" />国际海事组织有没有在所有主要的浏览器,包括Safari浏览器,Chrome浏览器,Firefox和Opera任何区别。搜索字段的行为也类似于常规文本字段。

那么,HTML5 input type="text"input type="search"HTML5有什么区别?

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


Answers:


176

目前,它们之间没有什么大不了的,也许永远不会。但是,关键是使浏览器制造商能够根据需要进行一些特殊处理。

考虑<input type="number">使用手机,抬起数字键盘或type="email"抬起特殊版本的键盘(带有@和.com),其余的可用。

如果需要,在手机上,搜索可以显示一个内部搜索小程序。

另一方面,它可以帮助当前的开发人员使用CSS。

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

12
+1为两个有效点,1)internal search applet for mobile phone。2)ability to make better presentation。但是,我应该等待接受答案,因为我想确保没有其他目的:)
Vijin Paulraj 2012年

现在没有。输入现在全部只是名称(例如,对input [type = color]仅部分支持),或者浏览器已经实现了自己的特殊处理(例如type = number或type = email或type = range)。没有其他选择-浏览器已经对其进行了特殊处理,或者没有。目前,在大多数浏览器中,type = search都没有,而且可能不会(除了可能使它看起来像iTunes或某些其他应用程序中的搜索框)。当前,它在那里,因此您可以通过知道它是一个搜索框来添加其他功能/演示。
Norguard

39
区别在于,在搜索输入中按[Esc]将清除结果。如果您的用户经常使用它,超级方便。
2014年

@JoshH这超级方便。是否知道当前会影响哪些浏览器(和版本)?鉴于现在的景观与一年半以前相比有很大的不同,我完全愿意更新答案并将其提高到常绿植物的当前(/未来)状态。
Norguard 2014年

2
我不建议在替换的元素上使用伪元素:虽然在某些情况下可以使用,但这违反标准
Paul Kozlovitch '16

29

在大多数浏览器中,它绝对不起作用。它的行为就像一个文本输入。这不是问题。规范不要求它做任何特殊的事情。WebKit浏览器在处理样式上确实有所不同,主要是在样式上。

默认情况下,WebKit中的搜索输入具有内嵌边框,圆角和严格的印刷控件。

也,

据我所知,这在规范中也没有记载,但在规范中也没有记载,但是如果您在输入中添加一个result参数,WebKit将应用一个带有放大镜的放大镜,其中的箭头显示以前的结果。

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

参考

最重要的是,它为提供了语义含义input type

更新:

Chrome 51删除了对results属性的支持:


24

在视觉/功能上,如果输入类型为“ 搜索 ” ,则有2个区别:-

  1. 您会在输入/搜索框的末尾看到一个“ X ”符号,以清除框中的文本
  2. 按键盘上的“ Esc ”键也会清除文本

当然,这绝不会在所有地方发生。在什么环境下观察?
–StéphaneGourichon


2

实际上,假设它什么也不做要非常小心。当您使用类型搜索查找样式输入时,它们具有某些无法更改的属性。尝试更改一个边框,您将发现它是完全不可能的。有几个其他不允许的CSS属性,看看对所有的细节。

就像Jashwant提到的那样,还有result属性,尽管除非您还包括autosave属性,否则它不能很好地工作。但是,该下拉列表不适用于大多数浏览器,因此后果自负。


1

浏览器的作用有所不同,当您键入一些单词然后type="search"在chrome / safari中输入ESC键时,输入框将被清除。但是在type="text"某些情况下,这些单词将不会被清除。因此,请谨慎选择类型,尤其是当您将其用于自动完成功能或与搜索相关的功能时


1

奖励点:input type="search“具有使用onsearch属性的能力(尽管我已经注意到这在Microsoft的新Edge浏览器中不起作用),这消除了编写自定义内容的需要onkeypress=if(key=13) { function() }


1

使用输入type =“ search”可使键盘EnterEnter键的文本显示为“ search”,这可以改善用户体验。但是,如果使用此类型,则必须调整样式。


0

这取决于程序员的观点,程序员可以通过查看类型轻松确定输入的目的,并且CSS样式和JavaScript或JQuery可以很容易地验证输入中的规则。


-1

但是,如果您设置了它,则会对您的输入元素产生不良影响

<input type="search">

然后在您的CSS中设置

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

它不会出现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.