< 输入类型 = “提交”/> 和 < 按钮类型 = “提交”> 文本 </按钮 > 之间的区别

有很多关于他们的传说。我想知道真相。下面两个例子有什么不同?

  1. <input type='submit' value='text' />

  2. <button type='submit'>text</button>

133973 次浏览

使用 <button>,您可以在文本所在的位置使用 img 标记等

<button type='submit'> text -- can be img etc.  </button>

使用 <input>类型时,只能使用文本

不知道你从哪里得到你的传说,但:

提交按钮与 <button>

比如:

<button type="submit">(html content)</button>

IE6会在标签之间提交这个按钮的所有文本,其他浏览器只会提交这个值。使用 <button>可以使您在按钮的设计上获得更多的布局自由。从所有的意图和目的来看,它一开始看起来非常优秀,但是各种各样的浏览器怪癖使得它有时很难使用。

在您的示例中,IE6将向服务器发送 text,而大多数其他浏览器将不发送任何内容。要使其跨浏览器兼容,请使用 <button type="submit" value="text">text</button>。更好的做法是: 不要使用该值,因为如果添加 HTML,服务器端接收到的内容就会变得相当棘手。相反,如果必须发送额外的值,则使用隐藏字段。

按钮与 <input>

比如:

<input type="button" />

默认情况下,这几乎没有任何作用。它甚至不会提交你的表格。您只能将文本放置在按钮上,并通过 CSS 为其设置大小和边框。它最初(和当前)的意图是执行一个脚本,而不需要向服务器提交表单。

正常提交按钮与 <input>

比如:

<input type="submit" />

像前者,但实际上提交了周围的形式。

图像提交按钮与 <input>

比如:

<input type="image" />

像前者(提交) ,它也将提交一个表单,但你可以使用任何图像。当表单需要提交时,这曾经是使用图像作为按钮的首选方法。为了获得更多的控制,现在使用 <button>。这也可以用于 服务器端图像地图,但这是一个罕见的日子。当您使用 usemap-属性和(有或没有该属性) ,浏览器将发送鼠标指针 X/Y 坐标到服务器(更确切地说,鼠标指针位置内的按钮时,您点击它)。如果你只是忽略这些额外的东西,它只不过是一个伪装成图像的提交按钮。

浏览器之间有一些细微的差别,但是除了上面解释的 <button>标记之外,所有浏览器都会提交 value-Attribute。

总之:

<input type="submit">


<button type="submit"> Submit </button>

默认情况下,两者都会直观地绘制一个执行相同操作的按钮(提交表单)。

但是,建议使用 <button type="submit">,因为它具有更好的语义,更好的 ARIA 支持,并且更容易样式化。