<input type ='submit'/>和<button type ='submit'> text </ button>之间的区别

他们有很多传说。 我想知道真相。 以下两个例子有什么区别?

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

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

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

<button>提交button

与:

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

IE6会在标签之间提交这个button的所有文本,其他浏览器只会提交这个值。 使用<button>可以在button的devise上给您更多的布局空间。 在所有的意图和目的中,它起初看起来很好,但各种浏览器的怪癖使得它有时很难使用。

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

带有<input>button

与:

 <input type="button" /> 

默认情况下,这几乎没有任何东西。 它甚至不会提交你的表格。 你只能在button上放置文本,并通过CSS给它一个大小和边框。 它的原始(当前)意图是执行脚本,而不需要将表单提交给服务器。

正常提交button与<input>

与:

 <input type="submit" /> 

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

图像提交button与<input>

与:

 <input type="image" /> 

像前者一样(提交),它也会提交一个表格,但是你可以使用任何图片。 当表单需要提交时,这曾经是使用图像作为button的首选方式。 为了更多的控制,现在使用<button> 。 这也可以用于服务器端的图像映射,但这是最近的一个罕见的。 当你使用usemap attribute和(带有或不带有该属性)时,浏览器将把鼠标指针的X / Y坐标发送到服务器(更确切的说,是鼠标指针在你点击button时的位置) 。 如果你只是忽略这些额外的东西,那只不过是一个伪装成图像的提交button。

浏览器之间有一些微妙的区别,但是除了<button>标签之外,所有的都会提交value属性。

使用<button> ,你可以使用img标签,等等

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

<input>types,您被限制为文本