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

bou*_*nav 217 html types input

没有一个愚蠢的问题,所以我们走了:<input type='button' />和之间的区别是什么<input type='submit' />

小智 225

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

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

  • 此外,浏览器可以捕获表单上的"Enter"按键,如果有提交按钮,则自动提交表单,但不是. (42认同)
  • Shiny和New先生:表格可以通过回车键提交,无需任何按钮.例如,它足以专注于文本输入. (5认同)
  • 这显然是非常古老但我觉得有必要给我2美分,因为我觉得这是使用按钮类型的一个大挫折...表单onsubmit事件不是从javascript提交触发,导致潜在的维护噩梦. (4认同)
  • 您可以使用BUTTON元素,虽然(惊喜)使用Everyone的收藏浏览器(IE)时会出现一些问题.值得一提的是. (3认同)
  • 如果你有一个type ="image",他们也可以这样做,可以用来在点击时触发表单提交. (2认同)

Ais*_*ina 18

"按钮"就是一个按钮,您可以使用Javascript添加其他功能."提交"输入类型具有提交其放置的表单的默认功能(当然,您仍然可以使用Javascript添加其他功能).

  • 在 `&lt;form&gt;` 内没有 type 属性的 `&lt;button&gt;` 将表现得像 `&lt;input type="submit"&gt;`。请参阅此处的示例:https://sign-in-form.glitch.me。 (4认同)

小智 6

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


Eug*_*scu 5

还应该提到的是,类型=“提交”的命名输入也将与其他表单的命名字段一起提交,而类型=“按钮”的命名输入则不会。

换句话说,在下面的示例中,命名输入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>
Run Code Online (Sandbox Code Playgroud)

处理上述表单操作的 PHP 脚本 (checkout.php):

<?php var_dump($_POST); ?>
Run Code Online (Sandbox Code Playgroud)

通过在名为 /tmp/test/ 的文件夹中创建两个文件,然后从 shell 运行内置 PHP Web 服务器,在本地计算机上测试上述内容:

php -S localhost:3000 -t /tmp/test/
Run Code Online (Sandbox Code Playgroud)

打开浏览器http://localhost:3000亲自查看。

有人会想知道为什么我们需要提交一个命名按钮?这取决于后端脚本。例如,WooCommerce WordPress 插件不会处理发布的结账页面,除非Place Order指定的按钮也被提交。如果您将其类型从提交更改为按钮,则该按钮将不会被提交,因此结账表单将永远不会被处理。

这可能是一个小细节,但你知道,细节决定成败。