输入类型 = “提交”与按钮标签是否可以互换?

input type="submit"button标签可以互换吗?或者如果有什么不同,那么什么时候使用 input type="submit"和什么时候使用 button

如果没有区别,那么为什么我们有两个标签用于相同的目的?

184749 次浏览

http://www.w3.org/TR/html4/interact/forms.html#h-17.5

用BUTTON元素函数创建的按钮就像用INPUT元素创建的按钮一样,但是它们提供了更丰富的呈现可能性:BUTTON元素可以包含内容。例如,包含图像函数的BUTTON元素可能类似于类型设置为“image”的INPUT元素,但BUTTON元素类型允许内容。

所以就功能而言,它们是可互换的!

(别忘了,type="submit"button的默认值,所以不要设置它!)

<input type="button" />只是一个按钮,本身不会做任何事情。 <input type="submit" />在表单元素中,当单击时将提交表单

另一个有用的“特殊”按钮是<input type="reset" />,它将清除表单。

<input type='submit' />不支持其中的HTML,因为它是一个单独的自关闭标记。另一方面,<button>支持HTML、图像等,因为它是一个标记对:<button><img src='myimage.gif' /></button><button>在CSS样式方面也更灵活。

<button>的缺点是旧的浏览器不完全支持它。例如,IE6/7无法正确显示。

除非你有一些特殊的原因,否则最好还是使用<input type='submit' />

如果你谈论的是<input type=button>,它不会自动提交表单

如果你谈论的是<button>标签,那是更新的,不会在所有浏览器中自动提交。

底线是,如果你想让表单在所有浏览器中单击时提交,请使用<input type="submit">

<button><input type="submit">更新,更具语义性,易于风格化并支持HTML。

使用& lt; button>input type="button"..>。这是bootstrap 3中建议的做法。

http://getbootstrap.com/css/#buttons-tags

“跨浏览器的渲染

作为最佳实践,我们强烈建议使用<按钮>元素 只要可能,确保匹配的跨浏览器呈现 在其他事情中,有一个Firefox漏洞阻止我们 设置基于输入的按钮的行高,使它们不 与Firefox中其他按钮的高度完全匹配。" < / p >

我知道这是一个老问题,但我在mozilla.org上找到了这个问题,并认为它适用。

按钮有三种类型:提交、重置或按钮。点击一个 控件定义的网页发送表单数据 元素的Action属性。

A单击reset按钮 立即将所有表单小部件重置为默认值。从一个 从用户体验的角度来看,这是一种糟糕的做法。

A单击按钮 按钮做……没有什么!这听起来很傻,但却非常有用

< a href = " https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form And_a_< button> _to_finish”> https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form And_a_< button> _to_finish < / >

当使用input type="submit"button时,有一件事需要考虑。使用input type="submit"你在输入上不能使用一个CSS伪元素,但是你在按钮上可以 !

这是在样式化时在输入中使用button元素的一个原因。

虽然这两个元素都传递了相同的结果*,但我强烈建议你使用<button>:

  • 更加明确和易读。input表示控件是可编辑的,或者可以由用户编辑;button在它服务的目的方面要明确得多
  • 更容易在CSS样式;如上所述,FIrefox和IE在某些情况下input[type="submit"]不能正确显示
  • 可预测的请求:当值在POST/GET请求中提交给服务器时,IE有非常行为
  • Markup-friendly;您可以在按钮内嵌套项目,例如图标。
  • HTML5,前瞻性;作为开发人员,一旦新规范正式确定,我们就有责任采用它。HTML5,到目前为止,已经正式发布一年多了,并且在许多情况下已经向提高搜索引擎优化展示。

* 除了<button type="button">,默认情况下没有指定的行为。

总之,我强烈反对使用<input type="submit"/>

我不知道这是一个bug还是一个特性,但我发现了一个非常重要的(至少在某些情况下)区别:<input type="submit">在你的请求中创建键值对,而<button type="submit">不会。在Chrome和Safari中测试。

因此,当你的表单中有多个提交按钮,并想知道哪个按钮被单击时,不要使用button,而是使用input type="submit"