使用JQuery验证表单
|
|
002 |
|
003 |
/* 设置默认属性 */ |
004 |
$.validator.setDefaults({ |
005 |
submitHandler: function (form) { form.submit(); } |
006 |
}); |
007 |
// 中文字两个字节 |
008 |
jQuery.validator.addMethod("byteRangeLength", function (value, element, param) { |
009 |
var length = value.length; |
010 |
for (var i = 0; i < value.length; i++) { |
011 |
if (value.charCodeAt(i) > 127) { |
012 |
length++; |
013 |
} |
014 |
} |
015 |
return this.optional(element) || (length >= param[0] && length <= param[1]); |
016 |
}, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)"); |
017 |
|
018 |
/* 追加自定义验证方法 */ |
019 |
// 身份证号码验证 |
020 |
jQuery.validator.addMethod("isIdCardNo", function (value, element) { |
021 |
return this.optional(element) || isIdCardNo(value); |
022 |
}, "请正确输入您的身份证号码"); |
023 |
|
024 |
// 字符验证 |
025 |
jQuery.validator.addMethod("userName", function (value, element) { |
026 |
return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value); |
027 |
}, "用户名只能包括中文字、英文字母、数字和下划线"); |
028 |
|
029 |
// 手机号码验证 |
030 |
jQuery.validator.addMethod("isMobile", function (value, element) { |
031 |
var length = value.length; |
032 |
return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(value)); |
033 |
}, "请正确填写您的手机号码"); |
034 |
|
035 |
// 电话号码验证 |
036 |
jQuery.validator.addMethod("isPhone", function (value, element) { |
037 |
var tel = /^(\d{3,4}-?)?\d{7,9}$/g; |
038 |
return this.optional(element) || (tel.test(value)); |
039 |
}, "请正确填写您的电话号码"); |
040 |
|
041 |
// 邮政编码验证 |
042 |
jQuery.validator.addMethod("isZipCode", function (value, element) { |
043 |
var tel = /^[0-9]{6}$/; |
044 |
return this.optional(element) || (tel.test(value)); |
045 |
}, "请正确填写您的邮政编码"); |
046 |
$(regFrom).validate({ |
047 |
/* 设置验证规则 */ |
048 |
rules: { |
049 |
userName: { |
050 |
required: true, |
051 |
userName: true, |
052 |
byteRangeLength: [3, 15] |
053 |
}, |
054 |
password: { |
055 |
required: true, |
056 |
minLength: 5 |
057 |
}, |
058 |
repassword: { |
059 |
required: true, |
060 |
minLength: 5, |
061 |
equalTo: "#password" |
062 |
}, |
063 |
question: { |
064 |
required: true |
065 |
}, |
066 |
answer: { |
067 |
required: true |
068 |
}, |
069 |
realName: { |
070 |
required: true |
071 |
}, |
072 |
cardNumber: { |
073 |
isIdCardNo: true |
074 |
}, |
075 |
mobilePhone: { |
076 |
isMobile: true |
077 |
}, |
078 |
phone: { |
079 |
isPhone: true |
080 |
}, |
081 |
email: { |
082 |
required: true, |
083 |
email: true |
084 |
}, |
085 |
zipCode: { |
086 |
isZipCode: true |
087 |
} |
088 |
}, |
089 |
/* 设置错误信息 */ |
090 |
messages: { |
091 |
userName: { |
092 |
required: "请填写用户名", |
093 |
byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)" |
094 |
}, |
095 |
password: { |
096 |
required: "请填写密码", |
097 |
minlength: jQuery.format("输入{0}.") |
098 |
}, |
099 |
repassword: { |
100 |
required: "请填写确认密码", |
101 |
equalTo: "两次密码输入不相同" |
102 |
}, |
103 |
question: { |
104 |
required: "请填写您的密码提示问题" |
105 |
}, |
106 |
answer: { |
107 |
required: "请填写您的密码提示答案" |
108 |
}, |
109 |
realName: { |
110 |
required: "请填写您的真实姓名" |
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 |
}); |


浙公网安备 33010602011771号