<input type ='button'/>和<input type ='submit'/>之间的区别
有没有这样的事情是一个愚蠢的问题,所以在这里我们去: <input type='button' />
和<input type='submit' />
之间有什么区别?
<input type="button" />
button不会提交表单 – 默认情况下他们不做任何事情。 它们通常与JavaScript结合使用,作为AJAX应用程序的一部分。
<input type="submit">
button将在用户点击时提交他们所在的表单,除非您使用JavaScript指定。
一个“button”就是一个button,您可以使用Javascript添加其他function。 “提交”inputtypes具有提交所放置表单的默认function(当然,您仍然可以使用Javascript添加其他function)。
Button不会自行提交表单,它是一个简单的button,用来通过javascript来执行一些操作,而Submit则是一种当用户点击提交button时默认提交表单的button。
IE 8实际上使用它遇到的第一个button提交或button。 而不是通过使其成为inputtypes=提交页面上的订单来容易地指示哪个是期望的。
还应该提到,type =“submit”的命名input将与其他表单的命名字段一起提交,而命名inputtypes=“button”则不会。
换句话说,在下面的例子中,指定的inputname=button1
将不会被提交,而指定的inputname=submit1
将被提交。
示例HTML表单(index.html):
<form action="checkout.php" method="POST"> <!-- this won't get submitted despite being named --> <input type="button" name="button1" value="a button"> <!-- this one does; so the input's TYPE is important! --> <input type="submit" name="submit1" value="a submit button"> </form>
处理上述表单操作的PHP脚本(checkout.php):
<?php var_dump($_POST); ?>
通过在名为/ tmp / test /的文件夹中创build两个文件,然后从shell运行内置的PHP Web服务器,在本地机器上testing以上内容:
php -S localhost:3000 -t /tmp/test/
在http:// localhost:3000打开你的浏览器,看看你自己。
有人会问,为什么我们需要提交一个命名button? 这取决于后端脚本。 例如,WooCommerce WordPress插件不会处理发布的Checkout页面,除非提交了Place Order
namedbutton。 如果您将其types从提交更改为button,则该button将不会被提交,因此Checkout表单将永远不会被处理。
这可能是一个小细节,但你知道,魔鬼是在细节。
<input type="button">
可以在任何地方使用,而不只是在表单中,如果它们在一个表单中,它们不会提交表单。 更适合使用Javascript
。
应仅在表单中使用<input type="submit">
,它们将向指定的URL发送请求(GET或POST)。 他们不应该放在任何HTML的地方。
W3C在关于Button元素的规范中明确指出
button可能被看作是没有默认行为的所有button的通用类。
W3C
type='Submit'
被设置为转发并获取BACK-END(PHP,.NET等)的值。 type='button'
将反映正常的button行为。