jquery.validate.extend.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. /*this is basic form validation using for validation person's basic information author:Clara Guo data:2017/07/20*/
  2. $(document).ready(function(){
  3. $.validator.setDefaults({
  4. submitHandler: function(form) {
  5. form.submit();
  6. }
  7. });
  8. // 非法字符验证
  9. jQuery.validator.addMethod("specialSign",function(value,element) {
  10. var char = /^[^<>"'|\\]+$/;
  11. return this.optional(element) || (char.test(value));
  12. },"不能包含非法字符:< > \" ' \\\ |");
  13. // 手机号码验证身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)
  14. jQuery.validator.addMethod("isPhone",function(value,element) {
  15. var length = value.length;
  16. var phone = /^1[3-9]\d{9}$/;
  17. return this.optional(element)||(length == 11 && phone.test(value));
  18. },"请填写正确的11位手机号");
  19. // 电话号码验证
  20. jQuery.validator.addMethod("isTel",function(value,element) {
  21. var tel = /^(0\d{2,3}-)?\d{7,8}$/g;//区号3,4位,号码7,8位
  22. return this.optional(element) || (tel.test(value));
  23. },"请填写正确的座机号码");
  24. // 姓名校验
  25. jQuery.validator.addMethod("isName",function(value,element) {
  26. var name = /^[\u4e00-\u9fa5]{2,6}$/;
  27. return this.optional(element) || (name.test(value));
  28. },"姓名只能用汉字,长度2-4位");
  29. // 校验用户名
  30. jQuery.validator.addMethod("isUserName",function(value,element) {
  31. var userName = /^[a-zA-Z0-9]{2,13}$/;
  32. return this.optional(element) || (userName).test(value);
  33. },'请输入数字或者字母,不包含特殊字符');
  34. // 校验身份证
  35. jQuery.validator.addMethod("isIdentity",function(value,element) {
  36. var id = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X))$/;
  37. return this.optional(element) || (id.test(value));
  38. },"请输入正确的15或18位身份证号,末尾若为X请大写");
  39. // 校验二代身份证
  40. jQuery.validator.addMethod("isIdentity18",function(value,element) {
  41. var id = /^(^\d{17}(\d|X))$/;
  42. return this.optional(element) || (id.test(value));
  43. },"请输入正确的18位身份证号,末尾若为X请大写");
  44. // 校验出生日期
  45. jQuery.validator.addMethod("isBirth",function(value,element) {
  46. var birth = /^(19|20)\d{2}-(1[0-2]|0?[1-9])-(0?[1-9]|[1-2][0-9]|3[0-1])$/;
  47. return this.optional(element) || (birth).test(value);
  48. },"出生日期格式示例2000-01-01");
  49. // 校验IP地址
  50. jQuery.validator.addMethod("isIp",function(value,element) {
  51. var ip = /^(?:(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:1[0-9][0-9]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:2[0-4][0-9])|(?:25[0-5])|(?:1[0-9][0-9])|(?:[1-9][0-9])|(?:[0-9]))$/;
  52. return this.optional(element) || (ip).test(value);
  53. },"IP地址格式示例127.0.0.1");
  54. jQuery.validator.addMethod("notEqual", function(value, element, param) {
  55. return value != param;
  56. }, $.validator.format("输入值不允许为{0}"));
  57. jQuery.validator.addMethod("gt", function(value, element, param) {
  58. return value > param;
  59. }, $.validator.format("输入值必须大于{0}"));
  60. // 校验新旧密码是否相同
  61. jQuery.validator.addMethod("isdiff",function(){
  62. var p1=$("#pwdOld").val();
  63. var p2=$("#pwdNew").val();
  64. if(p1==p2){
  65. return false;
  66. }else{
  67. return true;
  68. }
  69. });
  70. // 校验新密码和确认密码是否相同
  71. jQuery.validator.addMethod("issame",function(){
  72. var p3=$("#confirm_password").val();
  73. var p4=$("#pwdNew").val();
  74. if(p3==p4){
  75. return true;
  76. }else{
  77. return false;
  78. }
  79. });
  80. // 校验基础信息表单
  81. $("#basicInfoForm").validate({
  82. errorElement:'span',
  83. errorClass:'help-block error-mes',
  84. rules:{
  85. name:{
  86. required:true,
  87. isName:true
  88. },
  89. sex:"required",
  90. birth:"required",
  91. mobile:{
  92. required:true,
  93. isPhone:true
  94. },
  95. email:{
  96. required:true,
  97. email:true
  98. }
  99. },
  100. messages:{
  101. name:{
  102. required:"请输入中文姓名",
  103. isName:"姓名只能为汉字"
  104. },
  105. sex:{
  106. required:"请输入性别"
  107. },
  108. birth:{
  109. required:"请输入出生年月"
  110. },
  111. mobile:{
  112. required:"请输入手机号",
  113. isPhone:"请填写正确的11位手机号"
  114. },
  115. email:{
  116. required:"请输入邮箱",
  117. email:"请填写正确的邮箱格式"
  118. }
  119. },
  120. errorPlacement:function(error,element){
  121. element.next().remove();
  122. element.closest('.gg-formGroup').append(error);
  123. },
  124. highlight:function(element){
  125. $(element).closest('.gg-formGroup').addClass('has-error has-feedback');
  126. },
  127. success:function(label){
  128. var el = label.closest('.gg-formGroup').find("input");
  129. el.next().remove();
  130. label.closest('.gg-formGroup').removeClass('has-error').addClass("has-feedback has-success");
  131. label.remove();
  132. },
  133. submitHandler:function(form){
  134. alert("保存成功!");
  135. }
  136. });
  137. // 校验修改密码表单
  138. $("#modifyPwd").validate({
  139. onfocusout: function(element) { $(element).valid()},
  140. debug:false, // 表示校验通过后是否直接提交表单
  141. onkeyup:false, // 表示按键松开时候监听验证
  142. rules:{
  143. pwdOld:{
  144. required:true,
  145. minlength:6
  146. },
  147. pwdNew:{
  148. required:true,
  149. minlength:6,
  150. isdiff:true,
  151. //issame:true,
  152. },
  153. confirm_password:{
  154. required:true,
  155. minlength:6,
  156. issame:true,
  157. }
  158. },
  159. messages:{
  160. pwdOld : {
  161. required:'必填',
  162. minlength:$.validator.format('密码长度要大于6')
  163. },
  164. pwdNew:{
  165. required:'必填',
  166. minlength:$.validator.format('密码长度要大于6'),
  167. isdiff:'原密码与新密码不能重复',
  168. },
  169. confirm_password:{
  170. required:'必填',
  171. minlength:$.validator.format('密码长度要大于6'),
  172. issame:'新密码要与确认新密码一致',
  173. }
  174. },
  175. errorElement:"mes",
  176. errorClass:"gg-star",
  177. errorPlacement: function(error, element)
  178. {
  179. element.closest('.gg-formGroup').append(error);
  180. }
  181. });
  182. });