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

 更新时间:2014年09月01日 15:21:13   投稿:hebedich  
这篇文章主要介绍了使用jquery.validate自定义方法实现"手机号码或者固定电话"的逻辑验证,解决了手机号码或者固定电话字至少填写一个的验证问题,分享给大家

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

项目采用的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 : []
        }
      }

相关文章

  • 浅谈EasyUI中编辑treegrid的方法

    浅谈EasyUI中编辑treegrid的方法

    本文给大家介绍的是在EasyUI中编辑treegid的方法,并附上具体的实例,这里推荐给大家,有需要的小伙伴快来参考下吧。
    2015-03-03
  • jquery实现将获取的颜色值转换为十六进制形式的方法

    jquery实现将获取的颜色值转换为十六进制形式的方法

    这篇文章主要介绍了jquery实现将获取的颜色值转换为十六进制形式的方法,包含了完整的实例与关键代码的注释说明,并附带了所需知识点的参考文章地址,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • ztree实现左边动态生成树右边为内容详情功能

    ztree实现左边动态生成树右边为内容详情功能

    zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件。接下来通过本文给大家分享ztree实现左边动态生成树右边为内容详情功能,需要的朋友参考下吧
    2017-11-11
  • jQuery获取某天的农历日期并判断是否除夕或新年的方法

    jQuery获取某天的农历日期并判断是否除夕或新年的方法

    这篇文章主要介绍了jQuery获取某天的农历日期并判断是否除夕或新年的方法,涉及jQuery针对日期与时间的相关操作技巧,需要的朋友可以参考下
    2016-03-03
  • JQuery EasyUI 日期控件如何控制日期选择区间

    JQuery EasyUI 日期控件如何控制日期选择区间

    这篇文章主要介绍了JQuery EasyUI 日期控件如何控制日期选择区间,需要的朋友可以参考下
    2014-05-05
  • jquery模拟alert的弹窗插件

    jquery模拟alert的弹窗插件

    这篇文章主要介绍了jquery模拟alert的弹窗插件的相关资料,需要的朋友可以参考下
    2015-07-07
  • jQuery控制TR显示隐藏的三种常用方法

    jQuery控制TR显示隐藏的三种常用方法

    第一种方法是使用id,第二种方法是使用$.each(),第三种方法是通过属性筛选器,还有很多,大家自家挖掘吧
    2014-08-08
  • jQuery Validate验证框架详解(推荐)

    jQuery Validate验证框架详解(推荐)

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。有兴趣的可以了解一下。
    2016-12-12
  • 完善的jquery处理机制

    完善的jquery处理机制

    这篇文章主要为大家详细介绍了完善的jquery处理机制的相关资料,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • jQuery的remove()方法使用详解

    jQuery的remove()方法使用详解

    从DOM中删除所有匹配的元素。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。我的理解就是将元素移除了。
    2015-08-08

最新评论