HTML<input type='button' />
和 和有什么不一样<input type='submit' />
?
8 回答
<input type="button" />
按钮不会提交表单 - 默认情况下它们不做任何事情。它们通常与 JavaScript 结合使用,作为 AJAX 应用程序的一部分。
<input type="submit">
按钮将在用户单击它们时提交它们所在的表单,除非您使用 JavaScript 另有指定。
“按钮”就是一个按钮,您可以使用 Javascript 向其添加附加功能。“提交”输入类型具有提交其所在表单的默认功能(当然,您仍然可以使用 Javascript 添加其他功能)。
按钮不会自行提交表单。它是一个简单的按钮,用于使用 javascript 执行某些操作,而提交是一种按钮,默认情况下,只要用户单击提交按钮,就会提交表单。
还应该提到的是 type="submit" 的命名输入也将与其他表单的命名字段一起提交,而命名输入 type="button" 不会。
换句话说,在下面的示例中,命名输入name=button1
不会被提交,而命名输入name=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/ 的文件夹中创建两个文件,然后从 shell 运行内置的 PHP Web 服务器,在本地计算机上测试上述内容:
php -S localhost:3000 -t /tmp/test/
在http://localhost:3000打开浏览器并亲自查看。
有人会想为什么我们需要提交一个命名按钮?这取决于后端脚本。例如,除非Place Order
也提交了命名按钮,否则 WooCommerce WordPress 插件不会处理发布的结帐页面。如果您将其类型从提交更改为按钮,则此按钮将不会被提交,因此结帐表单将永远不会得到处理。
这可能是一个小细节,但你知道,魔鬼在细节中。
IE 8 实际上使用它遇到的第一个按钮提交或按钮。而不是通过将其设置为输入 type=submit 来轻松指示所需的内容,页面上的订单实际上很重要。
type='Submit'
设置为转发并获取 BACK-END(PHP、.NET 等)上的值。
type='button'
将反映正常的按钮行为。
<input type="button">
可以在任何地方使用,而不仅仅是在表单中,如果它们在一个表单中,它们不会提交表单。更适合Javascript
.
<input type="submit">
只能在表单中使用,它们将向指定的 URL 发送请求(GET 或 POST)。它们不应放在任何 HTML 位置。