输入类型="提交"和按钮标签是可互换的吗?或者如果有任何区别,那么什么时候使用输入类型=“提交”和什么时候按钮?
如果没有区别,为什么我们有两个标签是为了同样的目的?
输入类型="提交"和按钮标签是可互换的吗?或者如果有任何区别,那么什么时候使用输入类型=“提交”和什么时候按钮?
如果没有区别,为什么我们有两个标签是为了同样的目的?
当前回答
当使用input type="submit"和button时,有一件事需要考虑。使用input type="submit",你不能在输入上使用CSS伪元素,但可以在按钮上使用!
这就是在样式化方面使用按钮元素而不是输入元素的原因之一。
其他回答
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
用BUTTON元素函数创建的按钮就像用INPUT元素创建的按钮一样,但是它们提供了更丰富的呈现可能性:BUTTON元素可以包含内容。例如,包含图像函数的BUTTON元素可能类似于类型设置为“image”的INPUT元素,但BUTTON元素类型允许内容。
所以就功能而言,它们是可互换的!
(别忘了,type="submit"是默认的with按钮,所以不要用它!)
<input type="button" />只是一个按钮,本身不会做任何事情。 <input type="submit" />,在表单元素中,当单击时将提交表单。
另一个有用的“特殊”按钮是<input type="reset" />,它将清除表单。
使用<button>标签代替<input type="button"..>。这是bootstrap 3中建议的做法。
http://getbootstrap.com/css/#buttons-tags
“跨浏览器的渲染 作为最佳实践,我们强烈建议使用<button>元素 尽可能确保匹配的跨浏览器呈现。 除此之外,还有一个Firefox漏洞阻止我们 设置基于<input>的按钮的行高,使它们不为 完全匹配Firefox上其他按钮的高度。”
<input type='submit' />不支持其中的HTML,因为它是一个单独的自关闭标记。<button>,另一方面,支持HTML,图像等内部,因为它是一个标签对:<button><img src='myimage.gif' /></button>。<button>在CSS样式方面也更加灵活。
<button>的缺点是旧浏览器不完全支持它。例如,IE6/7无法正确显示。
除非你有一些特殊的原因,否则最好坚持<input type='submit' />。
我不知道这是一个bug还是一个功能,但我发现有非常重要的(至少在某些情况下)差异:<input type="submit">在请求中创建键值对,<button type="submit">没有。在Chrome和Safari中测试。
因此,当你的表单中有多个提交按钮,并且想知道哪个按钮被点击了时,不要使用按钮,而是使用input type="submit"。