input type="submit"和 button标签可以互换吗?或者如果有什么不同,那么什么时候使用 input type="submit"和什么时候使用 button?
input type="submit"
button
如果没有区别,那么为什么我们有两个标签用于相同的目的?
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
用BUTTON元素函数创建的按钮就像用INPUT元素创建的按钮一样,但是它们提供了更丰富的呈现可能性:BUTTON元素可以包含内容。例如,包含图像函数的BUTTON元素可能类似于类型设置为“image”的INPUT元素,但BUTTON元素类型允许内容。
所以就功能而言,它们是可互换的!
(别忘了,type="submit"是button的默认值,所以不要设置它!)
type="submit"
<input type="button" />
<input type="submit" />
另一个有用的“特殊”按钮是<input type="reset" />,它将清除表单。
<input type="reset" />
<input type='submit' />不支持其中的HTML,因为它是一个单独的自关闭标记。另一方面,<button>支持HTML、图像等,因为它是一个标记对:<button><img src='myimage.gif' /></button>。<button>在CSS样式方面也更灵活。
<input type='submit' />
<button>
<button><img src='myimage.gif' /></button>
<button>的缺点是旧的浏览器不完全支持它。例如,IE6/7无法正确显示。
除非你有一些特殊的原因,否则最好还是使用<input type='submit' />。
如果你谈论的是<input type=button>,它不会自动提交表单
<input type=button>
如果你谈论的是<button>标签,那是更新的,不会在所有浏览器中自动提交。
底线是,如果你想让表单在所有浏览器中单击时提交,请使用<input type="submit">
<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
input[type="submit"]
POST
GET
* 除了<button type="button">,默认情况下没有指定的行为。
<button type="button">
总之,我强烈反对使用<input type="submit"/>。
<input type="submit"/>
我不知道这是一个bug还是一个特性,但我发现了一个非常重要的(至少在某些情况下)区别:<input type="submit">在你的请求中创建键值对,而<button type="submit">不会。在Chrome和Safari中测试。
<button type="submit">
因此,当你的表单中有多个提交按钮,并想知道哪个按钮被单击时,不要使用button,而是使用input type="submit"。