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

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


当前回答

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

按钮可以有三种类型:提交、重置或按钮。点击一个 控件定义的网页发送表单数据 元素的Action属性。点击重置按钮 立即将所有表单小部件重置为默认值。从一个 从用户体验的角度来看,这是一种糟糕的做法。点击按钮 按钮做……没有什么!这听起来很傻,但却非常有用 用JavaScript构建自定义按钮。

https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form And_a_ <按钮> _to_finish

其他回答

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="submit">更新,更具语义性,易于风格化,并支持HTML。

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

按钮可以有三种类型:提交、重置或按钮。点击一个 控件定义的网页发送表单数据 元素的Action属性。点击重置按钮 立即将所有表单小部件重置为默认值。从一个 从用户体验的角度来看,这是一种糟糕的做法。点击按钮 按钮做……没有什么!这听起来很傻,但却非常有用 用JavaScript构建自定义按钮。

https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form And_a_ <按钮> _to_finish

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

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