submit和button的区别

form表单的两种提交方式,submit和button的用法有什么不同呢?

 注:

button-普通按钮,submit-提交按钮。 
  submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上。

 

使用场景:

  这里说的部分使用场景,并不是只能用一种,只是说,在这种场景下使用更加方便,程序员工作量小。

场景SubmitButton
网页上需要提交信息到服务器  
网页上执行一个普通的事件,如重置、清空功能。  
提交表单 需要绑定事件才能提交表单数据
局部刷新 不可以使用,在触发事件的同时会提交表单。
没有表单,却要提交数据 submit需要有表单时,提交时才会带数据。当然使用submit也可以,但是前提要拦截onclick事件。 而button默认是不提交任何数据。可以绑定事件的方式来提交数据。
表单数据太多的时候 推荐 需要写很多数据的获取动作
提交数据是要使用JS进行校验的,但如果这时候用户禁用了JS,那么校验就失效了,如果后台也没有进行校验,那么不合法的数据就进入后台了。 不推荐 推荐:通过button提交数据,那么如果用户禁用JS,那么数据提交动作就激活不了

 

 

方法一:

# 在jsp的前端页面的头部插入一个js方法:
 function checkUser(){
   var result = document.getElementById("userid").value;
   var password = document.getElementById("userpassid").value;
   if(result == ""  ){
     alert("用户名不能为空");
     return false;
   }
   if(password == ""  ){
    alert("密码不能为空");
     return false;
   }else{
   return true;
   }
}

# 在form表单里写成这样:

<form id="formid"  name= "myform" method = 'post'  action = 'user_login_submit.action'onsubmit = "return checkUser();" >
            <table width="100%" border="0">
              <tr>
                <td width="60" height="40" align="right">用户名&nbsp;</td>
                <td><input type="text" value="" class="text2" name = "username" id = "userid"/></td>
              </tr>
              <tr>
                <td width="60" height="40" align="right">密&nbsp;&nbsp;码&nbsp;</td>
                <td><input type="password" value="" class="text2" name = "userpass" id = "userpassid"/></td>
              </tr>
              <tr>
                <td width="60" height="40" align="right">&nbsp;</td>
                <td><div class="c4">
                    <input type="submit" value="" class="btn2"  />

 

方法二:

function checkUser(){
   var result = document.getElementById("userid").value;
   var password = document.getElementById("passid").value;
   if(result == ""  ){
     alert("用户名不能为空");
     return false;
   }
   if(password == ""  ){
    alert("密码不能为空");
     return false;
   }  document.getElementById("formid").submit();
}

# form表格的写法,需要写id 
<form id="formid" method = 'post'  action = 'user_login_submit.action'  >

# button按钮的写法如下:
<input type="button" value="" class="btn2" onclick = "checkUser();" />

 

 补充: 
  1、上面的场景中,表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常我们提倡用button,如果需要使用submit提交前验证的话 应在方法前加return。onClick方法不加return 会自动提交,并不会起到约束的作用, 所以,使用submit时需要验证请加 return true或false。 
  如一个登陆模块,先验证用户名是否为空,如果为空,SUBMIT点击时永远提交不到from表单指定页面。只能是表单形式发送噢!而且不能再表单指定的页面中去验证传进来的值。

 

 

 

 

 

待更新。。。

 

参考 

 

posted @ 2018-10-08 21:06  pupilheart  阅读(515)  评论(0)    收藏  举报
小强带你挣小钱v:zln88896

公告

点击 更新中