DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> 使用jquery.validate自定義方法教程實現手機號碼或者固話至少填寫一個的邏輯驗證
使用jquery.validate自定義方法教程實現手機號碼或者固話至少填寫一個的邏輯驗證
編輯:JQuery特效代碼     

最近項目開發中遇到這樣的需求“手機號碼或者固話至少填寫一個”,如下圖所示:

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

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved