input type="submit"
和button
标签可以互换吗?或者,如果有什么区别,那么何时使用input type="submit"
和何时使用button
?
如果没有区别,那么为什么我们有2个用于相同目的的标签?
button
并且value
某些版本的IE中的属性input
只会发送您期望的内容,某些版本的IE不能很好地与button
s 配合使用。
input type="submit"
和button
标签可以互换吗?或者,如果有什么区别,那么何时使用input type="submit"
和何时使用button
?
如果没有区别,那么为什么我们有2个用于相同目的的标签?
button
并且value
某些版本的IE中的属性input
只会发送您期望的内容,某些版本的IE不能很好地与button
s 配合使用。
Answers:
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
使用BUTTON元素创建的按钮的功能与使用INPUT元素创建的按钮一样,但是它们提供了更丰富的呈现可能性:BUTTON元素可能具有内容。例如,包含图像功能的BUTTON元素类似于并且可能类似于其类型设置为“图像”的INPUT元素,但是BUTTON元素类型允许内容。
因此,仅对于功能而言,它们是可互换的!
(不要忘记,它type="submit"
是的默认设置button
,因此请不要使用它!)
type="submit"
与按钮,默认为type
是submit
。
type
默认值为的情况button
。我更喜欢显式地显示每个属性,以避免任何浏览器不一致。
使用<button>标记而不是<input type =“ button” ..>。这是引导程序3中的建议做法。
http://getbootstrap.com/css/#buttons-tags
“跨浏览器渲染
作为最佳实践,我们强烈建议尽可能使用<button>元素,以确保匹配的跨浏览器呈现。
除其他外,还有一个Firefox错误,该错误使我们无法设置基于<input>的按钮的行高,从而导致它们与Firefox上其他按钮的高度不完全匹配。”
button
更加明确,并具有aria
可访问性功能,并且样式容易得多。它也是具有前瞻性的,因为它是HTML5。
尽管两个元素在功能上都提供相同的结果*,但我还是强烈建议您使用<button>
:
input
建议控件是可编辑的,或者可以由用户编辑;button
在服务目的方面更为明确input[type="submit"]
处在某些情况下无法正确显示POST
/ GET
请求中将值提交到服务器时,IE会产生异常行为* 随着例外它默认没有指定的行为。<button type="button">
总之,我强烈建议不要使用<input type="submit" />
。
<input type='submit' />
不支持HTML,因为它是一个自闭标签。<button>
另一方面,内部支持HTML,图像等,因为它是标记对:<button><img src='myimage.gif' /></button>
。<button>
在CSS样式方面也更加灵活。
缺点<button>
是较旧的浏览器未完全支持它。例如,IE6 / 7不能正确显示。
除非您有特定原因,否则最好坚持一下<input type='submit' />
。
<input type="submit" value="Log In" />
<button>
某些新功能。这是否意味着我们完全不应该在答案中提及特定的标签,因为它可能在将来的某个时候发生变化?我宁愿把它留给读者作为练习,以确定答案如何适用于他们的情况。只要这些信息对读者有价值,我认为包含这些信息就没有问题。
我意识到这是一个老问题,但是我在mozilla.org上发现了这个问题并认为它适用。
按钮可以是三种类型:提交,重置或按钮。单击提交按钮将表单的数据发送到由元素的action属性定义的网页。
单击重置按钮,将立即将所有表单小部件重置为其默认值。从UX的角度来看,这被认为是不好的做法。
单击按钮按钮没有任何作用!这听起来很愚蠢,但是用JavaScript构建自定义按钮非常有用。
<button type="button">
来将滑块/转盘前进到下一张幻灯片。
<button>
比较新<input type="submit">
,具有更多语义,易于样式化并在其中支持HTML。
我不知道这是错误还是功能,但发现的区别非常重要(至少在某些情况下):<input type="submit">
在您的请求中创建键值对,<button type="submit">
但没有。已在Chrome和Safari中测试。
因此,当您的表单中有多个提交按钮并且想知道单击了哪个按钮时,请不要使用button
,input type="submit"
而应使用。