共计 1013 个字符,预计需要花费 3 分钟才能阅读完成。
button- 普通按钮,submit- 提交按钮。submit 是 button 的一个特例,也是 button 的一种,它把提交这个动作自动集成了,submit 和 button, 二者都以按钮的形式展现, 看起来都是按钮,所不同的是 type 属性和处发响应的事件上。
使用场景:
这里说的部分使用场景,并不是只能用一种,只是说,在这种场景下使用更加方便,程序员工作量小。用表格对比一下:
场景
button
submit
网页上需要提交信息到服务器
√
网页上执行一个普通的事件,如重置、清空功能。
√
提交表单
需要绑定事件才能提交表单数据
√
局部刷新
√
不可以使用,在触发事件的同时会提交表单。
没有表单,却要提交数据
而 button 默认是不提交任何数据。可以绑定事件的方式来提交数据。
submit 需要有表单时,提交时才会带数据。当然使用 submit 也可以,但是前提要拦截 onclick 事件。
表单数据太多的时候
需要写很多数据的获取动作
推荐
提交数据是要使用 JS 进行校验的,但如果这时候用户禁用了 JS,那么校验就失效了,如果后台也没有进行校验,那么不合法的数据就进入后台了。
推荐:通过 button 提交数据,那么如果用户禁用 JS, 那么数据提交动作就激活不了
不推荐
补充
1、上面的场景中,表单在点击提交按钮后需要用 JS 进行处理(包括输入验证)后再提交的话,通常我们提倡用 button,如果需要使用 submit 提交前验证的话 应在方法前加 return。onClick 方法不加 return 会自动提交,并不会起到约束的作用,所以,使用 submit 时需要验证请加 return true 或 false。如一个登陆模块,先验证用户名是否为空,如果为空,SUBMIT 点击时永远提交不到 from 表单指定页面。只能是表单形式发送噢!而且不能再表单指定的页面中去验证传进来的值。
function check(){
var name = document.getElementById(“name”).value;
if(name == null || name == ”){
alert(“ 用户名不能为空 ”);
return false;
}
return true;
}
<form name=”form” action=” 跳转的页面 ” method=”post” onsubmit=”return check()”>
<input type=”text” id=”name”/>
<input type=”submit” value=” 提交 ”/>