输入类型="提交"和按钮标签是可互换的吗?或者如果有任何区别,那么什么时候使用输入类型=“提交”和什么时候按钮?

如果没有区别,为什么我们有两个标签是为了同样的目的?


当前回答

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

其他回答

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

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

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

我不知道这是一个bug还是一个功能,但我发现有非常重要的(至少在某些情况下)差异:<input type="submit">在请求中创建键值对,<button type="submit">没有。在Chrome和Safari中测试。

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

虽然这两个元素在功能上提供了相同的结果*,但我强烈建议您使用<button>:

Far more explicit and readable. input suggests that the control is editable, or can be edited by the user; button is far more explicit in terms of the purpose it serves Easier to style in CSS; as mentioned above, FIrefox and IE have quirks in which input[type="submit"] do not display correctly in some cases Predictable requests: IE has verying behaviours when values are submitted in the POST/GET request to the server Markup-friendly; you can nest items, for example, icons, inside the button. HTML5, forward-thinking; as developers, it is our responsibility to adopt to the new spec once it is officialized. HTML5, as of right now, has been official for over one year now, and has been shown in many cases to boost SEO.

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

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

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

这就是在样式化方面使用按钮元素而不是输入元素的原因之一。