首页 > 编程 > JavaScript > 正文

jquery实现简易的移动端验证表单

2019-11-20 11:19:35
字体:
来源:转载
供稿:网友

验证是否显示红色的提交按钮

bindBlur:function(){//jquery多级验证表单  var n = $('#item_name');  var p = $('#price');  var r = $('#reserve');  show(velidate());//页面加载之后先进行一次验证  //分别对三个需要验证的字段进行验证绑定,这里也可以写成一句代码  //$('#item_name','#price',$('#reserve')).on({blur:function(){show(veridate())}});  n.on({blur:function(){show(velidate())}});  p.on({blur:function(){show(velidate())}});  r.on({blur:function(){show(velidate())}});  function velidate(){//获取验证的结果    var flag = true;    if(n.val()==""){flag= false;}    if(p.val()=="0" || p.val()==""){flag= false;}    if(r.val()=="0" || r.val()==""){flag= false;}    return flag;  }  function show(flag){//将验证结果反映到页面    if(flag){$(".down-complete-btn").css("background-color","#b02125");}    else{$(".down-complete-btn").css("background-color","#8f8f8f");}  }},

验证,在用户点击提交的时候调用,会定位需要完善的地方

check:function(){  var n = $('#item_name');  var p = $('#price');  var r = $('#reserve');  if(n.val()==""){n.focus();return false;}  if(p.val()=="0" || p.val()==""){p.focus();return false;}  if(r.val()=="0" || r.val()==""){r.focus();return false;}  return true;},

这一段是ajax提交和提交前调用验证

postData:function(){  $(".down-complete-btn").click(function(){    if(Add.check()){      $.ajax({        type : 'post',        dataType : 'json',        data : {          id : $("#item_id").val(),          name : $("#item_name").val(),          price : $("#price").val(),          photos : $("#photos").val(),        },        cache : false,        url : '/main/goods/add',        success : function(data){          if(data.code==1){            alert("修改成功");          }else{            console.log(data);          }        },        error : function(){          alert('网络异常');        }      });    }  });}

easy_form_validate.js

require.config({  paths:{    "jquery":"./lib/jquery-1.11.1.min",    'icon_Upload':'./icon_Upload'  }});require(['jquery','icon_Upload'],function(){  Add.bindBlur();  Add.postData();});var Add = {  bindBlur:function(){//jquery多级验证表单    var n = $('#item_name');    var p = $('#price');    var r = $('#reserve');    show(velidate());//页面加载之后先进行一次验证    //分别对三个需要验证的字段进行验证绑定,这里也可以写成一句代码    //$('#item_name','#price',$('#reserve')).on({blur:function(){show(velidate())}});    n.on({blur:function(){show(velidate())}});    p.on({blur:function(){show(velidate())}});    r.on({blur:function(){show(velidate())}});    function velidate(){//获取验证的结果      var flag = true;      if(n.val()==""){flag= false;}      if(p.val()=="0" || p.val()==""){flag= false;}      if(r.val()=="0" || r.val()==""){flag= false;}      return flag;    }    function show(flag){//将验证结果反映到页面      if(flag){$(".down-complete-btn").css("background-color","#b02125");}else{$(".down-complete-btn").css("background-color","#8f8f8f");}    }  },  check:function(){    var n = $('#item_name');    var p = $('#price');    var r = $('#reserve');    if(n.val()==""){n.focus();return false;}    if(p.val()=="0" || p.val()==""){p.focus();return false;}    if(r.val()=="0" || r.val()==""){r.focus();return false;}    return true;  },  postData:function(){    $(".complete-btn").click(function(){      if(Add.check()){        $.ajax({          type : 'post',          dataType : 'json',          data : {            id : $("#item_id").val(),            name : $("#item_name").val(),            summary : $("#summary").text(),            price : $("#price").val(),            store : $("#store").val(),            mobileDetail : $("#detail").val(),            photos : $("#photos").val(),            brokerage : $("#brokerage").val(),            flag : $("#flag").val(),          },          cache : false,          url : '/main/goods/add',          success : function(data){            if(data.code==1){              alert("修改成功");            }else{              console.log(data);            }          },          error : function(){            alert('网络异常');          }        });      }    });  }};

我们再来看一则验证代码

<script type="text/javascript">//<![CDATA[$(function(){    /*    *思路大概是先为每一个required添加必填的标记,用each()方法来实现。    *在each()方法中先是创建一个元素。然后通过append()方法将创建的元素加入到父元素后面。    *这里面的this用的很精髓,每一次的this都对应着相应的input元素,然后获取相应的父元素。    *然后为input元素添加失去焦点事件。然后进行用户名、邮件的验证。    *这里用了一个判断is(),如果是用户名,做相应的处理,如果是邮件做相应的验证。    *在jQuery框架中,也可以适当的穿插一写原汁原味的javascript代码。比如验证用户名中就有this.value,和this.value.length。对内容进行判断。    *然后进行的是邮件的验证,貌似用到了正则表达式。    *然后为input元素添加keyup事件与focus事件。就是在keyup时也要做一下验证,调用blur事件就行了。用triggerHandler()触发器,触发相应的事件。    *最后提交表单时做统一验证    *做好整体与细节的处理    */    //如果是必填的,则加红星标识.    $("form :input.required").each(function(){      var $required = $("<strong class='high'> *</strong>"); //创建元素      $(this).parent().append($required); //然后将它追加到文档中    });     //文本框失去焦点后    $('form :input').blur(function(){       var $parent = $(this).parent();       $parent.find(".formtips").remove();       //验证用户名       if( $(this).is('#username') ){          if( this.value=="" || this.value.length < 6 ){            var errorMsg = '请输入至少6位的用户名.';            $parent.append('<span class="formtips onError">'+errorMsg+'</span>');          }else{            var okMsg = '输入正确.';            $parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');          }       }       //验证邮件       if( $(this).is('#email') ){        if( this.value=="" || ( this.value!="" && !/.+@.+/.[a-zA-Z]{2,4}$/.test(this.value) ) ){           var errorMsg = '请输入正确的E-Mail地址.';           $parent.append('<span class="formtips onError">'+errorMsg+'</span>');        }else{           var okMsg = '输入正确.';           $parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');        }       }    }).keyup(function(){      $(this).triggerHandler("blur");    }).focus(function(){       $(this).triggerHandler("blur");    });//end blur        //提交,最终验证。     $('#send').click(function(){        $("form :input.required").trigger('blur');        var numError = $('form .onError').length;        if(numError){          return false;        }         alert("注册成功,密码已发到你的邮箱,请查收.");     });    //重置     $('#res').click(function(){        $(".formtips").remove();      });})//]]></script>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表