【转载】[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 : []
}
}
转自:http://www.cnblogs.com/xiaoyangjia/p/3945007.html
【转载】[jquery.validate]自定义方法实现"手机号码或者固定电话"的逻辑验证的更多相关文章
- [jquery.validate]自定义方法实现"手机号码或者固定电话"的逻辑验证
最近项目开发中遇到这样的需求“手机号码或者固话至少填写一个”,如下图所示: 项目采用的jquery.validate.js验证组件,目前组件不支持这种“或”逻辑的验证,于是就自己定义一个 jQuery ...
- Java 编写过滤手机号码或者固定电话的工具类
以下是分享自己编写的用于过滤手机号码.固定电话.黑名单的工具类TelCheckUtils, import java.util.HashSet; import java.util.Set; import ...
- jQuery Validate 插件为表单提供了强大的验证功能
之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...
- vue 常用的表单验证,包括手机号码,固定电话和身份证...
<template> <div> <pl-content-box> <pl-page-nav :show-previous=true></pl-p ...
- jquery validate 动态生成的多个同名input的验证
我的应用场景是,添加和修改入库单的明细,明细是以表格的形式呈现,可以动态添加商品,用jquery.validate插件做数据验证. 由于jquery.validate插件验证同名的input时只验证第 ...
- 表单验证插件之jquery.validate.js
提到表单验证的插件,第一个想到的就是jquery.validate.js,所以小生想在这里稍微详细地说一下这款插件的具体使用方法,便于理解,我直接附上整段demo的代码(没怎么调样式,主要是看js): ...
- jQuery插件之验证控件jquery.validate.js
今天学习一下jQuery.Validate插件,为便于日后翻阅查看和广大博客园园友共享,特记于此. 本博客转载自:jQuery Validate jQuery Validate 插件为表单提供了强大的 ...
- JQuery.Validate学习笔记
JQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证 ...
- Jquery客户端校验——jquery.validate.js
jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证 ...
随机推荐
- Javascript aop(面向切面编程)之around(环绕)
Aop又叫面向切面编程,其中“通知”是切面的具体实现,分为before(前置通知).after(后置通知).around(环绕通知),用过spring的同学肯定对它非常熟悉,而在js中,AOP是一个被 ...
- 源程序版本管理软件和项目管理软件,Github注册流程
目前流行的源程序版本管理软件和项目管理软件:Microsoft TFS,Github,SVN,Coding 各自的优缺点: Microsoft TFS: 优点: tfs核心的,是对敏捷,msf,cmm ...
- 运用DebugDiag诊断ASP.Net异常
Debug Diagnostic Tool (DebugDiag)是用来帮助诊断IIS/COM+等应用假死.性能差.内存泄露及碎片和崩溃等问题的工具. 本文介绍如何运用DebugDiag诊断特定的AS ...
- java提高篇(七)-----关键字static
一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员 ...
- js模版引擎handlebars.js实用教程——如何引入Handlebars.js
返回目录 Jquery插件,第一步当然要引用Jquery啦,然后引用Handlebars.js即可,仅仅需要这两个js文件. <script type="text/javascript ...
- 基于Task的异步模式的定义
返回该系列目录<基于Task的异步模式--全面介绍> 命名,参数和返回类型 在TAP(Task-based Asynchronous Pattern)中的异步操作的启动和完成是通过一个单独 ...
- Lucene系列-概述
为了生存,就得干一行爱一行.那就学习下lucene吧. 全文检索介绍 流程: 建索引 准备待搜索文档 文档分词:将文档分成一个个单独的单词,去除标点符号.停词(无意义的冠词介词等),得到token 语 ...
- 移动端使用localResizeIMG4压缩图片
移动h5开发避免不了上传图片,一般我们使用html自带的控件input或者使用微信上传API.但微信上传API不是任何地方都可以使用的,使用html自带的控件input上传又免不了图片体积太大,上传不 ...
- jquery 插件开发
一.$.extend() 这种方式用来定义一些辅助方法是比较方便的 $.extend({ sayHello:function(name){ console.log('Hello:'+name); } ...
- gradle.properties
gradle.properties # If this is set, then multiple APK files will be generated: One per native platfo ...