Jquery自制表单实时验证

关于Jquery表单验证,这里写了一个简单的例子,大致思路分享一下。

 

首先获得页面的数据,然后去判断页面的元素,如果错误的话,就在DIV下面添加提示。

 

这里用到了$("input").blur去触发校验,当然如果更规范一点可以使用blur和keyup时间来触发验证规则。

 

而且这里用到了HTML的自定义标签,使得用户不用去写繁琐的表达式的JS验证,只需要在HTML页面使用自定义标签就可以了。最后在点击提交按钮的时候,我会去判断页面中是否存在提示信息,来控制提交。当然这只是一个很简单的小例子,以后会慢慢优化。

 

这里先上js代码
$(document).ready(function(){
   $("input").focus(function(){
    		
   });
   $("input").blur(function(){
  var value=this.value; //获得文本框的值
   var id=this.id;  //获得文本框的ID
   var vname=$("#"+this.id).attr("vname"); //验证标签
   var regular=$("#"+this.id).attr("regular"); //自定义验证
   var errMsg=$("#"+this.id).attr("errMsg"); //提示信息
   var fid="f"+id;
   var flag=true;
   if(isEmpty(value)){ 
   msg=vname+"不能为空!";
   }else {
   $("#"+fid).remove();
   if(isEmpty(regular)){
   return;
   }
   var re=eval(regular);  //转义成正则表达式
   if(re.test(value)){
   flag=false;
   }else{
   msg=errMsg;
   }
   			
   }
   if(flag){
   var fidv=$("#"+fid);
   if(fidv.length!=1)
   $("#"+id).after("<font class=\"style1\" id="+fid+">"+msg+"</font>");
   }
   		
   });
 });
function isEmpty(value){
         if(undefined==value||value==""||value==null){
             return true;
         }else{
             return false;
         }
     };

 

CSS很简单,就是标红了一下
 <style type="text/css">
.style1 {color: #FF0000}
</style>
HTML
<div class="row"  id="registerDiv">
<div class="col-sm-12 pl0 pr0 whitecolor mt30 pb20 mb30">
<h5 class="font18 fontbold titlecolor mt30 mb30 border-b pb15 ml30 mr30">开始注册您的企业账户</h5>
<div class="col-md-8 col-md-offset-2">
<div class="form-group col-sm-12">
    <label for="disabledSelect">联系人</label>
    <div class="col-sm-12 pl0">
  <div class="col-md-6 pl0"><input class="form-control"  id="linkman" type="text"  regular="/[\u4E00-\u9FA5]{2,7}/g"  vname="联系人"  errMsg="联系人只能输入2-6位的中文"/></div>
</div>
 </div>
 <div class="form-group col-sm-12">
    <label for="disabledSelect">手机</label>
    <div class="col-sm-12 pl0">
  <div class="col-md-6 pl0"><input class="form-control"  name="mobilePhone"  id="mobilePhone"" type="number"   regular="/^1\d{10}$/"  vname="手机号"  errMsg="请输入正确的手机号"/></div>
  <div class="col-md-6 mt2"> <input type="button" style="height:32px;width:120px;"  value="点击发送验证码" οnclick="sendCode(this)"  /></div>
</div>
 </div>
 <div class="form-group col-sm-12">
    <label for="disabledSelect">手机验证码</label>
    <div class="col-sm-12 pl0">
  <div class="col-md-6 pl0"><input class="form-control"  id="mobileCaptcha" name="captcha"  type="text"  vname="手机验证码" /></div>
<!--   <div class="col-md-6 mt5">提示</div> -->
</div>
 </div>
 <div class="form-group col-sm-12">
    <label for="disabledSelect">公司全称</label>
    <div class="col-sm-12 pl0">
  <div class="col-md-6 pl0"><input class="form-control"  id="entName"  type="text"    vname="公司全称"  errMsg="请输入正确的公司名称"/></div>
 <!--  <div class="col-md-6 mt5">提示</div> -->
</div>
 </div>
 <div class="form-group col-sm-12">
    <label for="disabledSelect">验证码</label>
    <div class="col-sm-12 pl0">
  <div class="col-md-6 pl0">  <input id="picCaptcha" type="text" class="txt code" placeholder="输入验证码" style="width: 100px;" name="kaptcha"  vname="验证码"  > 
  </div>
</div>
 </div>
 <div class="form-group col-sm-12">
    <label class="checkbox-inline">
  <input type="checkbox"  οnclick="enable()" id="policy"> 我同意 
  <a data-toggle="modal" data-target="#policyProvision" href="">政策条款</a> 和 
  <a data-toggle="modal" data-target="#privacyClause" href="">隐私政策</a>
</label>
 </div>
 <div class="form-group col-sm-12 mb30">
    <button class="btn btn-sm btn-primary" type="button" οnclick="register()" id="register" disabled="true">注册</button>
 </div>
</div>
</div>
</div>

 

最后在我们点击提交的时候去判断一下提示信息
function register(){
if($("#registerDiv").find("font").length>0){
alert("验证不通过");
return false;
}
}

 

这样的话会有几个优点:

 

可以自定义验证规则:可以很方便地自定义验证规则

 

简单而且强大的验证信息提示:没人了验证信息提示,并提供自定义覆盖默认提示信息功能

 

实时进行验证的功能.:通过blur来触发验证规则

 

最后附上几张效果图

 

 

如过要限制input的框的长度的话,可以使用          HTML内
<input> maxlength 属性
<form action="demo_form.html">
  Username: <input type="text" name="usrname" maxlength="10"><br>
  <input type="submit" value="Submit">
</form> 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.duanlonglong.com/qdjy/588.html