<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    最近在做一個用戶注冊登錄的頁面,資料查尋過程中發(fā)現(xiàn)了一個非常不錯的客戶端驗證的極品-jQuery.validate。
    它是著名的JavaScript包jQuery的一個插件,其實它還有其它的一些插件應該都爽,有待慢慢來學習

    官方地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
    jQuery用戶手冊:http://jquery.org.cn/visual/cn/index.xml

    開發(fā)使用起來非常簡單明了,
    我的代碼:


       1. $(document).ready(function(){   
       
    2.   
       
    3/* 設置默認屬性 */   
       
    4. $.validator.setDefaults({   
       
    5.   submitHandler: function(form) { form.submit(); }   
       
    6. });   
       
    7// 中文字兩個字節(jié)   
       8. jQuery.validator.addMethod("byteRangeLength"function(value, element, param) {   
       
    9.   var length = value.length;   
      
    10.   for(var i = 0; i < value.length; i++){   
      
    11.    if(value.charCodeAt(i) > 127){   
      
    12.     length++;   
      
    13.    }   
      
    14.   }   
      
    15.   return this.optional(element) || ( length >= param[0&& length <= param[1] );   
      
    16. }, "請確保輸入的值在3-15個字節(jié)之間(一個中文字算2個字節(jié))");   
      
    17.   
      
    18/* 追加自定義驗證方法 */   
      
    19// 身份證號碼驗證   
      20. jQuery.validator.addMethod("isIdCardNo"function(value, element) {   
      
    21.   return this.optional(element) || isIdCardNo(value);   
      
    22. }, "請正確輸入您的身份證號碼");   
      
    23.   
      
    24// 字符驗證   
      25. jQuery.validator.addMethod("userName"function(value, element) {   
      
    26.   return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);   
      
    27. }, "用戶名只能包括中文字、英文字母、數(shù)字和下劃線");   
      
    28.   
      
    29// 手機號碼驗證   
      30. jQuery.validator.addMethod("isMobile"function(value, element) {   
      
    31.   var length = value.length;   
      
    32.   return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(value));   
      
    33. }, "請正確填寫您的手機號碼");   
      
    34.   
      
    35// 電話號碼驗證   
      36. jQuery.validator.addMethod("isPhone"function(value, element) {   
      
    37.   var tel = /^(\d{3,4}-?)?\d{7,9}$/g;   
      
    38.   return this.optional(element) || (tel.test(value));   
      
    39. }, "請正確填寫您的電話號碼");   
      
    40.   
      
    41// 郵政編碼驗證   
      42. jQuery.validator.addMethod("isZipCode"function(value, element) {   
      
    43.   var tel = /^[0-9]{6}$/;   
      
    44.   return this.optional(element) || (tel.test(value));   
      
    45. }, "請正確填寫您的郵政編碼");   
      
    46. $(regFrom).validate({   
      
    47/* 設置驗證規(guī)則 */   
      
    48.   rules: {   
      
    49.    userName: {   
      
    50.     required: true,   
      
    51.     userName: true,   
      
    52.     byteRangeLength: [3,15]   
      
    53.    },   
      
    54.    password: {   
      
    55.     required: true,   
      
    56.     minLength: 5   
      
    57.    },   
      
    58.    repassword: {   
      
    59.     required: true,   
      
    60.     minLength: 5,   
      
    61.     equalTo: "#password"   
      
    62.    },   
      
    63.    question: {   
      
    64.     required: true   
      
    65.    },   
      
    66.    answer: {   
      
    67.     required: true   
      
    68.    },   
      
    69.    realName: {   
      
    70.     required: true   
      
    71.    },   
      
    72.    cardNumber: {   
      
    73.     isIdCardNo: true   
      
    74.    },   
      
    75.    mobilePhone: {   
      
    76.     isMobile: true   
      
    77.    },   
      
    78.    phone: {   
      
    79.     isPhone: true   
      
    80.    },   
      
    81.    email: {   
      
    82.     required: true,   
      
    83.     email: true   
      
    84.    },   
      
    85.    zipCode: {   
      
    86.     isZipCode:true   
      
    87.    }   
      
    88.   },   
      
    89/* 設置錯誤信息 */   
      
    90.   messages: {   
      
    91.    userName: {   
      
    92.     required: "請?zhí)顚懹脩裘?/span>",   
      
    93.     byteRangeLength: "用戶名必須在3-15個字符之間(一個中文字算2個字符)"   
      
    94.    },   
      
    95.    password: {   
      
    96.     required: "請?zhí)顚懨艽a",   
      
    97.     minlength: jQuery.format("輸入{0}.")   
      
    98.    },   
      
    99.    repassword: {   
     
    100.     required: "請?zhí)顚懘_認密碼",   
     
    101.     equalTo: "兩次密碼輸入不相同"   
     
    102.    },   
     
    103.    question: {   
     
    104.     required: "請?zhí)顚懩拿艽a提示問題"   
     
    105.    },   
     
    106.    answer: {   
     
    107.     required: "請?zhí)顚懩拿艽a提示答案"   
     
    108.    },   
     
    109.    realName: {   
     
    110.     required: "請?zhí)顚懩恼鎸嵭彰?/span>"   
     
    111.    },   
     
    112.    email: {   
     
    113.     required: "請輸入一個Email地址",   
     
    114.     email: "請輸入一個有效的Email地址"   
     
    115.    }   
     
    116.   },   
     
    117/* 錯誤信息的顯示位置 */   
     
    118.   errorPlacement: function(error, element) {   
     
    119.    error.appendTo( element.parent() );   
     
    120.   },   
     
    121/* 驗證通過時的處理 */   
     
    122.   success: function(label) {   
     
    123.    // set   as text for IE   
     124.    label.html(" ").addClass("checked");   
     
    125.   },   
     
    126/* 獲得焦點時不驗證 */   
     
    127.   focusInvalid: false,   
     
    128.   onkeyup: false   
     
    129. });   
     
    130.   
     
    131// 輸入框獲得焦點時,樣式設置   
     132. $('input').focus(function(){   
     
    133.   if($(this).is(":text"|| $(this).is(":password"))   
     
    134.    $(this).addClass('focus');   
     
    135.   if ($(this).hasClass('have_tooltip')) {   
     
    136.    $(this).parent().parent().removeClass('field_normal').addClass('field_focus');   
     
    137.   }   
     
    138. });   
     
    139.   
     
    140// 輸入框失去焦點時,樣式設置   
     141. $('input').blur(function() {   
     
    142.   $(this).removeClass('focus');   
     
    143.   if ($(this).hasClass('have_tooltip')) {   
     
    144.    $(this).parent().parent().removeClass('field_focus').addClass('field_normal');   
     
    145.   }   
     
    146. });   
     
    147. });  


    網(wǎng)上的資料有人說,它跟prototype包會有沖突,我還沒有同時使用過,這點不是很清楚,但我是發(fā)現(xiàn)一個問題:
    對于最小/大 長度的驗證方法,作者可能考慮到大家的命名習慣不同,同時做了minLength和minlength(maxLength和maxlength)方法, 應該哪一個都是可以的,但對于用戶Message來說,只能夠定義針對minlength(maxlength),才能調(diào)用用戶自定義的Message,
    否則只是調(diào)用包的默認Message,但具體原因還沒有查清楚。同時,這個插件提供了本地化的消息,但對于我這里初學者來說,怎么使用它還有待摸索!

    posted on 2009-12-21 14:31 seal 閱讀(1038) 評論(0)  編輯  收藏 所屬分類: JQuery
    主站蜘蛛池模板: 99久久免费看国产精品| 亚洲午夜精品国产电影在线观看| 国产又大又粗又长免费视频| 精品福利一区二区三区免费视频| 女人张开腿给人桶免费视频| 成人免费无码大片A毛片抽搐| 中文字幕亚洲激情| 亚洲欧洲日韩综合| 一级特级女人18毛片免费视频| 成全动漫视频在线观看免费高清版下载| 中文无码成人免费视频在线观看| 伊伊人成亚洲综合人网7777| 亚洲精品无码久久久久久 | 亚洲jjzzjjzz在线播放| 国产人成网在线播放VA免费| 国产成人无码免费看视频软件 | 亚洲av日韩av综合| 在线精品免费视频| 黄色一级毛片免费看| 精品国产污污免费网站aⅴ| 亚洲一区二区三区在线| 最新69国产成人精品免费视频动漫 | 亚洲第一精品电影网| 亚欧国产一级在线免费| 免费看的黄色大片| 特级毛片全部免费播放| 亚洲精品无码不卡在线播放HE| 亚洲av永久综合在线观看尤物| 卡1卡2卡3卡4卡5免费视频| 免费无码AV一区二区| 成人一a毛片免费视频| 亚洲无人区码一二三码区别图片| 久久精品成人免费看| yy6080亚洲一级理论| 亚洲中文字幕乱码AV波多JI| 国产免费av片在线播放| 亚洲永久无码3D动漫一区| 一个人看的免费高清视频日本| 亚洲欧洲日韩不卡| 日本黄色动图免费在线观看| 亚洲成色www久久网站夜月|