form-validate-demo.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. //以下为修改jQuery Validation插件兼容Bootstrap的方法,没有直接写在插件中是为了便于插件升级
  2. $.validator.setDefaults({
  3. highlight: function (element) {
  4. $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
  5. },
  6. success: function (element) {
  7. element.closest('.form-group').removeClass('has-error').addClass('has-success');
  8. },
  9. errorElement: "span",
  10. errorPlacement: function (error, element) {
  11. if (element.is(":radio") || element.is(":checkbox")) {
  12. //error.appendTo(element.parent().parent().parent());
  13. error.appendTo(element.parent().parent());
  14. } else {
  15. error.appendTo(element.parent().parent());
  16. }
  17. },
  18. errorClass: "help-block m-b-none",
  19. validClass: "help-block m-b-none"
  20. });
  21. var config = {};
  22. var v_rules = {};
  23. var v_messages = {};
  24. function test(){
  25. $('input,select,textarea').each(function(){
  26. v_rules[$(this).attr('name')] = $(this).attr('validate');
  27. // alert(rules['firstname']);
  28. // rules = $.parseJSON(v_rules);
  29. v_messages[$(this).attr('name')] = $(this).attr('warning');
  30. // alert(v_messages['firstname']);
  31. });
  32. }
  33. //以下为官方示例
  34. $().ready(function () {
  35. // validate the comment form when it is submitted
  36. $("#commentForm").validate();
  37. // validate signup form on keyup and submit
  38. var icon = "<i class='fa fa-times-circle'></i> ";
  39. // $('input,select,textarea').each(function(){
  40. // var v = null, vm = null;
  41. // eval("v = " + $(this).attr("validate"));
  42. // if(v)
  43. // {
  44. // v_rules[$(this).attr('name')] = v;
  45. // }
  46. // eval("vm = " + $(this).attr("validateMessage"));
  47. // if(vm)
  48. // {
  49. // v_messages[$(this).attr('name')] = vm;
  50. // }
  51. // // v_rules[$(this).attr('name')] = $(this).attr('validate');
  52. // // alert(rules['firstname']);
  53. // // rules = $.parseJSON(v_rules);
  54. // // v_messages[$(this).attr('name')] = $(this).attr('warning');
  55. // // alert(v_messages['firstname']);
  56. // });
  57. // // config['rules'] = v_rules;
  58. // // config['messages'] = v_messages;
  59. // // config = JSON.stringify(config);
  60. // // config = JSON.parse(config);
  61. // $("#signupForm").validate({
  62. // rules:v_rules,
  63. // messages:v_messages
  64. // });
  65. $("#signupForm").validate({
  66. rules: {
  67. firstname: "required",
  68. lastname: "required",
  69. username: {
  70. required: true,
  71. minlength: 2
  72. },
  73. password: {
  74. required: true,
  75. minlength: 5
  76. },
  77. confirm_password: {
  78. required: true,
  79. minlength: 5,
  80. equalTo: "#password"
  81. },
  82. email: {
  83. required: true,
  84. email: true
  85. },
  86. topic: {
  87. required: "#newsletter:checked",
  88. minlength: 2
  89. },
  90. agree: "required"
  91. },
  92. messages: {
  93. firstname: icon + "请输入你的姓",
  94. lastname: icon + "请输入您的名字",
  95. username: {
  96. required: icon + "请输入您的用户名",
  97. minlength: icon + "用户名必须两个字符以上"
  98. },
  99. password: {
  100. required: icon + "请输入您的密码",
  101. minlength: icon + "密码必须5个字符以上"
  102. },
  103. confirm_password: {
  104. required: icon + "请再次输入密码",
  105. minlength: icon + "密码必须5个字符以上",
  106. equalTo: icon + "两次输入的密码不一致"
  107. },
  108. email: icon + "请输入您的E-mail",
  109. agree: {
  110. required: icon + "必须同意协议后才能注册",
  111. element: '#agree-error'
  112. }
  113. }
  114. });
  115. // propose username by combining first- and lastname
  116. $("#username").focus(function () {
  117. var firstname = $("#firstname").val();
  118. var lastname = $("#lastname").val();
  119. if (firstname && lastname && !this.value) {
  120. this.value = firstname + "." + lastname;
  121. }
  122. });
  123. });