使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
作者:bea
最近项目开发中遇到这样的需求“手机号码或者固话至少填写一个”,如下图所示: 项目采用的jquery.validate.js验证组件,目前组件不支持这种“或”逻辑的验证,于是就自己定义一个 jQuery.validator.addMethod("phone", function(value, element) { var mobile = $("#mobile").val();// 手机号码 var telephone = $("#telephone"
最近项目开发中遇到这样的需求“手机号码或者固话至少填写一个”,如下图所示:
项目采用的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 : []
}
}
猜你喜欢
您可能感兴趣的文章:
- jquery delay()介绍及使用指南
- 使用jquery实现放大镜效果
- javascript初学者常用技巧
- js/jquery判断浏览器的方法小结
- Iframe实现跨浏览器自适应高度解决方法
- jQuery级联操作绑定事件实例
- jquery和css3实现的炫酷时尚的菜单导航
- Enter回车切换输入焦点实现思路与代码兼容各大浏览器
- jQuery淡入淡出元素让其效果更为生动
- JQuery表格拖动调整列宽效果(自己动手写的)
- JQuery中的html()、text()、val()区别示例介绍
- 关闭页面window.location事件未执行的原因及解决方法
- 文本框倒叙输入让输入框的焦点始终在最开始的位置
- JavaScript中的单引号和双引号报错的解决方法
- 一个简单的动态加载js和css的jquery代码
- jquery ajax请求方式与提示用户正在处理请稍等
- 用js提交表单解决一个页面有多个提交按钮的问题
- 浅析JQuery中的html(),text(),val()区别
- 如何判断微信内置浏览器(通过User Agent实现)