使用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)證庫的使用介紹
- 基于Bootstrap+jQuery.validate實(shí)現(xiàn)Form表單驗(yàn)證
- jquery.validate使用詳解
相關(guān)文章
淺談jquery點(diǎn)擊label觸發(fā)2次的問題
下面小編就為大家?guī)硪黄獪\談jquery點(diǎn)擊label觸發(fā)2次的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06jQuery簡(jiǎn)單實(shí)現(xiàn)隱藏以及顯示特效
這篇文章主要介紹了jQuery簡(jiǎn)單實(shí)現(xiàn)隱藏以及顯示特效,需要的朋友可以參考下2015-02-02JavaScript的jQuery庫中ready方法的學(xué)習(xí)教程
這篇文章主要介紹了JavaScript的jQuery庫中ready方法的學(xué)習(xí)教程,包括ready的相關(guān)簡(jiǎn)短寫法,rally cool,需要的朋友可以參考下2015-08-08jQuery在vs2008及js文件中的無智能提示的解決方法
我通過下面方法實(shí)現(xiàn)了jQuery在VS2008及js文件中的智能提示的,希望對(duì)朋友們有所幫助。2010-12-12jQuery實(shí)現(xiàn)鼠標(biāo)拖動(dòng)圖片功能
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)拖動(dòng)圖片功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Jquery find與filter函數(shù)區(qū)別 說明
基本是find子元素找,filter是平級(jí)找2010-05-05