input type="submit" 和"button"有什么区别?

本文详细解释了HTML中input type=submit和type=button的区别。submit类型按钮默认提交表单,而button类型则仅作为点击事件触发,具体行为需通过JavaScript定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

input type="submit" 和"button"有什么区别?

关注者
96
被浏览
45225
6 个回答
谢谢邀请。
在一个页面上画一个按钮,有四种办法:
  • <input type="button" /> 这就是一个按钮。如果你不写javascript 的话,按下去什么也不会发生。
  • <input type="submit" /> 这样的按钮用户点击之后会自动提交 form,除非你写了javascript 阻止它。
  • <button> 这个按钮放在 form 中也会点击自动提交,比前两个的优点是按钮的内容不光可以有文字,还可以有图片等多媒体内容。(当然,前两个用图片背景也可以做到)。它的缺点是不同的浏览器得到的 value 值不同;可能还有其他的浏览器兼容问题(葛亮)。
  • 其他标签,例如 a, img, span, div,然后用图片把它伪装成一个按钮。
参见:
[原]<button>和<input type="button"> 的区别
html - Difference between <input type='button' /> and <input type='submit' />
html - input type="submit" Vs button tag are they interchangeable?
画面表现上,其他回答都已经说明了。
需要强调的一点是,其实<input type="submit" />不是一个画面元素,而是一个表单(Form)元素,和文本输入是一样的,都属于“数据”的一部分(特征是,有value属性,而且该属性的值,会被传送到server端,可以拿来用),而不是样式的一部分。这种表现和数据混淆的设计,是早期web标准还比较简陋的时代的遗产。
从画面表现上看,通过CSS可以把两者描绘得完全一样。
从画面动作上看,通过JS可以强制两者动作也一致(都提交或者都不提交)。
但是只有表单数据这个特性,是无法混淆的。<button>无法把自己当成Form的数据。
所以,如果只是个单纯的按钮,触发一些画面动作,请使用<button>;反之,会把画面的数据提交给Server的,一般用<input type="submit" />,当然<button>+JS也完全可以取代。

56赞的不太好

bt和sb各写一个,绑个alert或者dom操作。可以发现:button如果没别的,就会一动不动;submit如果没别的,就会刷新页面(应该是一闪然后保持原页面);sb绑了dom,就是js的效果一闪,然后保持原页面。可以写js事件来绑定button,js是客户端的。但submit的实质作用是提交给服务端的,不是写个js阻止就能完事。

我觉得有了js之后button也是多余的存在
当onclick的时候给他return false
请问一个问题:
比如我为一个form里面的<input type="button" />和<input type="submit" />用js同时加载了onmousedown事件,onmousedown处理完事后不执行this.click(),
为什么<input type="button" />会触发onclick呢?有什么方法可以避免<input type="button" />触发onclick吗?麻烦了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值