使用jquery.validate自定義方法實(shí)現(xiàn)"手機(jī)號(hào)碼或者固話至少填寫一個(gè)"的邏輯驗(yàn)證
最近項(xiàng)目開發(fā)中遇到這樣的需求“手機(jī)號(hào)碼或者固話至少填寫一個(gè)”,如下圖所示:

項(xiàng)目采用的jquery.validate.js驗(yàn)證組件,目前組件不支持這種“或”邏輯的驗(yàn)證,于是就自己定義一個(gè)
jQuery.validator.addMethod("phone", function(value, element) {
var mobile = $("#mobile").val();// 手機(jī)號(hào)碼
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)) {
//自定義錯(cuò)誤提示
$("#receivingMobile_tip").addClass("errorHint").text("請(qǐng)?zhí)顚懝潭娫捇蚴謾C(jī)號(hào)碼");
return false;
}
var mobilePass = false;
var telephonePass = false;
// 手機(jī)填了、固定電話沒填
if (!isEmpty(mobile) && isEmpty(telephone)) {
if (!mobileRule.test(mobile)) {
//自定義錯(cuò)誤提示
$("#receivingMobilePhone_tip").removeClass("successHint").addClass("errorHint").text("手機(jī)號(hào)碼格式不對(duì)");
return false;
} else {
mobilePass = true;
}
}
// 手機(jī)沒填、固定電話填了
if (isEmpty(mobile) && !isEmpty(telephone)) {
if (!telephoneRule.test(telephone)) {
//自定義錯(cuò)誤提示
$("#receivingTelephone_tip").removeClass("successHint").addClass("errorHint").text("固定電話格式不對(duì)");
return false;
} else {
telephonePass = true;
}
}
if (mobilePass || telephonePass) {
//自定義成功提示
$("#receivingTelephone_tip").removeClass("errorHint").addClass("successHint").text('');
return true;
} else {
return false;
}
}, "ignore");
補(bǔ)充isEmpty函數(shù):
// 空字符串判斷
function isEmpty(v, allowBlank) {
return v === null || v === undefined || (!allowBlank ? v === "" : false);
}
處理validate的errorPlacement:
errorPlacement : function(error, element) {
//忽略自定義的方法錯(cuò)誤提示
if (error.text() == "ignore") {
return;
}
}
在rules里面使用
rules : {
telephone : {
phone : []
},
mobile : {
phone : []
}
}
- jQuery.Validate 使用筆記(jQuery Validation范例 )
- 使用jQuery.Validate進(jìn)行客戶端驗(yàn)證(初級(jí)篇) 不使用微軟驗(yàn)證控件的理由
- jquery.validate使用攻略 第一部
- jquery.validate使用攻略 第二部
- jquery.validate使用攻略 第三部
- jquery.validate使用攻略 第五步 正則驗(yàn)證
- jQuery.validate 常用方法及需要注意的問題
- jQuery.Validate驗(yàn)證庫(kù)的使用介紹
- 基于Bootstrap+jQuery.validate實(shí)現(xiàn)Form表單驗(yàn)證
- jquery.validate使用詳解
相關(guān)文章
jquery UI Datepicker時(shí)間控件的使用方法(基礎(chǔ)版)
這篇文章主要介紹了jquery ui datepicker時(shí)間控件的使用方法,需要的朋友可以參考下2015-11-11
jQuery插件FusionCharts繪制的3D環(huán)餅圖效果示例【附demo源碼】
這篇文章主要介紹了jQuery插件FusionCharts繪制的3D環(huán)餅圖效果,結(jié)合完整實(shí)例形式分析了jQuery使用FusionCharts載入xml格式數(shù)據(jù)繪制圖形的操作步驟與相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-04-04
jquery.idTabs 選項(xiàng)卡使用示例代碼
idTabs是基于Jquery編寫封裝的一個(gè)插件,主要用于實(shí)現(xiàn)選項(xiàng)卡功能,下面是它的具體使用2014-09-09
Jquery仿IGoogle實(shí)現(xiàn)可拖動(dòng)窗口示例代碼
這個(gè)拖動(dòng)窗口是根據(jù)一個(gè)Jquery的框架直接做出來(lái)的:easywidgets,廢話就不多說了,直接把源代碼貼出來(lái),讓大家學(xué)習(xí)2014-08-08
js制作的鼠標(biāo)懸浮時(shí)產(chǎn)生的下拉框效果
js制作的鼠標(biāo)懸浮時(shí)產(chǎn)生的下拉框效果,需要的朋友可以參考下2012-10-10
jquery實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊后展開列表內(nèi)容的導(dǎo)航欄效果
這篇文章主要介紹了jquery實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊后展開列表內(nèi)容的導(dǎo)航欄效果,通過簡(jiǎn)單的jQuery鏈?zhǔn)讲僮鲗?shí)現(xiàn)針對(duì)頁(yè)面元素的遍歷及樣式動(dòng)態(tài)變換功能,需要的朋友可以參考下2015-09-09
jQuery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)浮層功能示例【拖動(dòng)div等任何標(biāo)簽】
這篇文章主要介紹了jQuery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)浮層功能,可實(shí)現(xiàn)拖動(dòng)div等任何標(biāo)簽的效果,涉及jQuery事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-12-12
jQuery插件artDialog.js使用與關(guān)閉方法示例
這篇文章主要介紹了jQuery插件artDialog.js使用與關(guān)閉方法,結(jié)合具體實(shí)例形式分析了jQuery彈出窗口插件artDialog.js的簡(jiǎn)單使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-10-10

