HTML <input type='button' />和<input type='submit' />之间有什么区别?
当前回答
<input type="button" />按钮不会提交表单——默认情况下它们什么都不做。它们通常作为AJAX应用程序的一部分与JavaScript一起使用。
>按钮将在用户点击它们时提交它们所在的表单,除非您使用JavaScript另有指定。
表单的第一个提交按钮也是被点击进行隐式提交的按钮,例如在文本输入中按enter键。
其他回答
<input type="button" />按钮不会提交表单——默认情况下它们什么都不做。它们通常作为AJAX应用程序的一部分与JavaScript一起使用。
>按钮将在用户点击它们时提交它们所在的表单,除非您使用JavaScript另有指定。
表单的第一个提交按钮也是被点击进行隐式提交的按钮,例如在文本输入中按enter键。
“按钮”只是一个按钮,你可以使用Javascript添加额外的功能。“submit”输入类型具有提交其所在表单的默认功能(当然,您仍然可以使用Javascript添加其他功能)。
IE 8实际上使用它遇到的第一个按钮提交或按钮。在页面上提交订单,而不是简单地通过输入type=来指示需要的是什么,这实际上很重要。
还应该提到的是,type="submit"的命名输入也将与其他表单的命名字段一起提交,而type="button"的命名输入则不会。
换句话说,在下面的例子中,命名的输入名称=button1将不会被提交,而命名的输入名称=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,自己看看吧。
有人会问为什么我们需要提交一个命名按钮?这取决于后端脚本。例如,WooCommerce WordPress插件不会处理发布的Checkout页面,除非也提交了Place Order命名按钮。如果您将其类型从submit更改为button,则该按钮将不会被提交,因此Checkout表单将永远不会被处理。
这可能是一个小细节,但你知道,细节决定成败。
推荐文章
- 为什么我的CSS3媒体查询不能在移动设备上工作?
- 下一个元素的CSS选择器语法是什么?
- 我如何用CSS跨浏览器绘制垂直文本?
- 如何获得box-shadow在左侧和右侧
- 相对定位一个元素,而不占用文档流中的空间
- 如何在jQuery检索复选框值
- 禁用身体滚动
- 如何在删除前显示确认消息?
- 在一个CSS宽度的小数点后的位置是尊重?
- 检测输入是否有文本在它使用CSS -在一个页面上,我正在访问和不控制?
- 定义TypeScript回调类型
- 如何用jQuery清空输入字段
- 我怎么能选择一个特定的类的最后一个元素,而不是父里面的最后一个孩子?
- 反应:为什么当道具改变时子组件不更新
- 我怎么能检查html元素,从DOM消失失去焦点?