button-普通按钮,submit-提交按钮。
submit是button的一个特例,也是button的一种,它把提交这个动做自动集成了,submit和button,两者都以按钮的形式展示,看起来都是按钮,所不一样的是type属性和处发响应的事件上。程序员
这里说的部分使用场景,并非只能用一种,只是说,在这种场景下使用更加方便,程序员工做量小。
用表格对比一下:服务器
场景 | button | submit |
---|---|---|
网页上须要提交信息到服务器 | √ | |
网页上执行一个普通的事件,如重置、清空功能。 | √ | |
提交表单 | 须要绑定事件才能提交表单数据 | √ |
局部刷新 | √ | 不可使用,在触发事件的同时会提交表单。 |
没有表单,却要提交数据 | 而button默认是不提交任何数据。能够绑定事件的方式来提交数据。 | submit须要有表单时,提交时才会带数据。固然使用submit也能够,可是前提要拦截onclick事件。 |
表单数据太多的时候 | 须要写不少数据的获取动做 | 推荐 |
提交数据是要使用JS进行校验的,但若是这时候用户禁用了JS,那么校验就失效了,若是后台也没有进行校验,那么不合法的数据就进入后台了。 | 推荐:经过button提交数据,那么若是用户禁用JS,那么数据提交动做就激活不了 | 不推荐 |
一、上面的场景中,表单在点击提交按钮后须要用JS进行处理(包括输入验证)后再提交的话,一般咱们提倡用button,若是须要使用submit提交前验证的话 应在方法前加return。onClick方法不加return 会自动提交,并不会起到约束的做用, 因此,使用submit时须要验证请加 return true或false。
如一个登录模块,先验证用户名是否为空,若是为空,SUBMIT点击时永远提交不到from表单指定页面。只能是表单形式发送噢!并且不能再表单指定的页面中去验证传进来的值。post
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="提交"/>