247

HTML<input type='button' />和 和有什么不一样<input type='submit' />

4

8 回答 8

247

<input type="button" />按钮不会提交表单 - 默认情况下它们不做任何事情。它们通常与 JavaScript 结合使用,作为 AJAX 应用程序的一部分。

<input type="submit">按钮将在用户单击它们时提交它们所在的表单,除非您使用 JavaScript 另有指定。

于 2008-11-14T14:29:18.087 回答
21

“按钮”就是一个按钮,您可以使用 Javascript 向其添加附加功能。“提交”输入类型具有提交其所在表单的默认功能(当然,您仍然可以使用 Javascript 添加其他功能)。

于 2008-11-14T14:30:11.283 回答
8

按钮不会自行提交表单。它是一个简单的按钮,用于使用 javascript 执行某些操作,而提交是一种按钮,默认情况下,只要用户单击提交按钮,就会提交表单。

于 2011-04-26T10:45:34.337 回答
4

还应该提到的是 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 插件不会处理发布的结帐页面。如果您将其类型从提交更改为按钮,则此按钮将不会被提交,因此结帐表单将永远不会得到处理。

这可能是一个小细节,但你知道,魔鬼在细节中。

于 2017-03-18T09:31:48.173 回答
3

IE 8 实际上使用它遇到的第一个按钮提交或按钮。而不是通过将其设置为输入 type=submit 来轻松指示所需的内容,页面上的订单实际上很重要。

于 2015-05-14T23:03:39.807 回答
3

type='Submit'设置为转发并获取 BACK-END(PHP、.NET 等)上的值。 type='button'将反映正常的按钮行为。

于 2017-08-16T13:35:47.480 回答
1

<input type="button">可以在任何地方使用,而不仅仅是在表单中,如果它们在一个表单中,它们不会提交表单。更适合Javascript.

<input type="submit">只能在表单中使用,它们将向指定的 URL 发送请求(GET 或 POST)。它们不应放在任何 HTML 位置。

于 2016-07-31T18:36:28.877 回答
0

W3C 明确,关于 Button 元素的规范

Button 可以被视为所有类型 Button 的通用类,没有默认行为。

W3C

于 2016-11-13T19:20:11.767 回答