jquery validate form

$(document).ready(function(){

/* 設置默認屬性 */
$.validator.setDefaults({
  submitHandler: function(form) { form.submit(); }
});
// 中文字兩個字節
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
  var length = value.length;
  for(var i = 0; i < value.length; i++){
   if(value.charCodeAt(i) > 127){
    length++;
   }
  }
  return this.optional(element) || ( length >= param[0] && length <= param[1] );
}, "請確保輸入的值在3-15個字節之間(一箇中文字算2個字節)");

/* 追加自定義驗證方法 */
// 身份證號碼驗證
jQuery.validator.addMethod("isIdCardNo", function(value, element) {
  return this.optional(element) || isIdCardNo(value);
}, "請正確輸入您的身份證號碼");

// 字符驗證
jQuery.validator.addMethod("userName", function(value, element) {
  return this.optional(element) || /^[/u0391-/uFFE5/w]+$/.test(value);
}, "用戶名只能包括中文字、英文字母、數字和下劃線");

// 手機號碼驗證
jQuery.validator.addMethod("isMobile", function(value, element) {
  var length = value.length;
  return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+/d{8})$/.test(value));
}, "請正確填寫您的手機號碼");

// 電話號碼驗證
jQuery.validator.addMethod("isPhone", function(value, element) {
  var tel = /^(/d{3,4}-?)?/d{7,9}$/g;
  return this.optional(element) || (tel.test(value));
}, "請正確填寫您的電話號碼");

// 郵政編碼驗證
jQuery.validator.addMethod("isZipCode", function(value, element) {
  var tel = /^[0-9]{6}$/;
  return this.optional(element) || (tel.test(value));
}, "請正確填寫您的郵政編碼");
$(regFrom).validate({
/* 設置驗證規則 */
  rules: {
   userName: {
    required: true,
    userName: true,
    byteRangeLength: [3,15]
   },
   password: {
    required: true,
    minLength: 5
   },
   repassword: {
    required: true,
    minLength: 5,
    equalTo: "#password"
   },
   question: {
    required: true
   },
   answer: {
    required: true
   },
   realName: {
    required: true
   },
   cardNumber: {
    isIdCardNo: true
   },
   mobilePhone: {
    isMobile: true
   },
   phone: {
    isPhone: true
   },
   email: {
    required: true,
    email: true
   },
   zipCode: {
    isZipCode:true
   }
  },
/* 設置錯誤信息 */
  messages: {
   userName: {
    required: "請填寫用戶名",
    byteRangeLength: "用戶名必須在3-15個字符之間(一箇中文字算2個字符)"
   },
   password: {
    required: "請填寫密碼",
    minlength: jQuery.format("輸入{0}.")
   },
   repassword: {
    required: "請填寫確認密碼",
    equalTo: "兩次密碼輸入不相同"
   },
   question: {
    required: "請填寫您的密碼提示問題"
   },
   answer: {
    required: "請填寫您的密碼提示答案"
   },
   realName: {
    required: "請填寫您的真實姓名"
   },
   email: {
    required: "請輸入一個Email地址",
    email: "請輸入一個有效的Email地址"
   }
  },
/* 錯誤信息的顯示位置 */
  errorPlacement: function(error, element) {
   error.appendTo( element.parent() );
  },
/* 驗證通過時的處理 */
  success: function(label) {
   // set   as text for IE
   label.html(" ").addClass("checked");
  },
/* 獲得焦點時不驗證 */
  focusInvalid: false,
  onkeyup: false
});

// 輸入框獲得焦點時,樣式設置
$('input').focus(function(){
  if($(this).is(":text") || $(this).is(":password"))
   $(this).addClass('focus');
  if ($(this).hasClass('have_tooltip')) {
   $(this).parent().parent().removeClass('field_normal').addClass('field_focus');
  }
});

// 輸入框失去焦點時,樣式設置
$('input').blur(function() {
  $(this).removeClass('focus');
  if ($(this).hasClass('have_tooltip')) {
   $(this).parent().parent().removeClass('field_focus').addClass('field_normal');
  }
});
});

 

  1. <form class="cmxform" id="signupForm " method="get" action="">
  2. <p>
  3. <label for="username">用戶名</label>
  4. <input id="username" name="username " />
  5. </p>
  6. <p>
  7. <label for="password">密碼</label>
  8. <input id="password" name="password " type="password" />
  9. </p>
  10. <p>
  11. <label for="confirm_password">確認密碼</label>
  12. <input id="confirm_password" name="confirm_password " type="password" />
  13. </p>
  14. <p>
  15. <label for="email">郵箱</label>
  16. <input id="email" name="email " />
  17. </p>
  18. <p>
  19. <label for="agree">是否同意</label>
  20. <input type="checkbox" id="agree" name="agree " />
  21. </p>
  22. <p>
  23. <input class="submit" type="submit" value="Submit"/>
  24. </p>
  25. </form>

javascript部分

  1. $().ready(function() {
  2. $("#signupForm ").validate({
  3. rules: {
  4. username: {
  5. required: true,
  6. minlength: 2
  7. },
  8. password: {
  9. required: true,
  10. minlength: 5
  11. },
  12. confirm_password: {
  13. required: true,
  14. minlength: 5,
  15. equalTo: "#password"
  16. },
  17. email: {
  18. required: true,
  19. email: true
  20. }
  21. },
  22. messages: {
  23. username: {
  24. required: "請輸入用戶名",
  25. minlength: "用戶名不能少於2個字符"
  26. },
  27. password: {
  28. required: "請輸入密碼",
  29. minlength: "密碼不能少於5個字符"
  30. },
  31. confirm_password: {
  32. required: "請輸入確認密碼",
  33. minlength: "確認密碼不能少於5個字符",
  34. equalTo: "密碼輸入不一致"
  35. },
  36. email: "請輸入有效郵箱"
  37. }
  38. });
  39. });
發佈了7 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章