首页 > 编程 > JavaScript > 正文

使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证

2019-11-20 14:13:13
字体:
来源:转载
供稿:网友

最近项目开发中遇到这样的需求“手机号码或者固话至少填写一个”,如下图所示:

项目采用的jquery.validate.js验证组件,目前组件不支持这种“或”逻辑的验证,于是就自己定义一个

jQuery.validator.addMethod("phone", function(value, element) {      var mobile = $("#mobile").val();// 手机号码      var telephone = $("#telephone").val();// 固定电话      var mobileRule = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0-9]|170)/d{8}$/;      var telephoneRule = /^/d{3,4}-?/d{7,9}$/;      // 都没填      if (isEmpty(mobile) && isEmpty(telephone)) {        //自定义错误提示        $("#receivingMobile_tip").addClass("errorHint").text("请填写固定电话或手机号码");        return false;      }      var mobilePass = false;      var telephonePass = false;      // 手机填了、固定电话没填      if (!isEmpty(mobile) && isEmpty(telephone)) {        if (!mobileRule.test(mobile)) {          //自定义错误提示          $("#receivingMobilePhone_tip").removeClass("successHint").addClass("errorHint").text("手机号码格式不对");          return false;        } else {          mobilePass = true;        }      }      // 手机没填、固定电话填了      if (isEmpty(mobile) && !isEmpty(telephone)) {        if (!telephoneRule.test(telephone)) {          //自定义错误提示          $("#receivingTelephone_tip").removeClass("successHint").addClass("errorHint").text("固定电话格式不对");          return false;        } else {          telephonePass = true;        }      }      if (mobilePass || telephonePass) {        //自定义成功提示        $("#receivingTelephone_tip").removeClass("errorHint").addClass("successHint").text('');        return true;      } else {        return false;      }    }, "ignore");

补充isEmpty函数:

 // 空字符串判断function isEmpty(v, allowBlank) {   return v === null || v === undefined || (!allowBlank ? v === "" : false);}

处理validate的errorPlacement:

errorPlacement : function(error, element) {        //忽略自定义的方法错误提示        if (error.text() == "ignore") {          return;        }               }


在rules里面使用

rules : {        telephone : {          phone : []        },        mobile : {          phone : []        }      }

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