MVC服务器端:
1.在controller中验证用户输入,如果验证失败,执行
ModelState.AddModelError(
"
LoginName
"
, Resource.LoginName
+
Resource.WordSpace
+
Resource.CanNotBeBlank);
2.在View视图某一个地方放置
<%=
Html.ValidationSummary()
%>
JS客户端:
1.引放相应的JS文件
<
script
src
="/Js/jquery-1.4.2.js"
type
="text/javascript"
></
script
>
<
script
src
="/Js/jquery.validate.js"
type
="text/javascript"
></
script
>
2.在View视图某一个地方放置
<
label
id
="messageBox"
></
label
>
3.以常规的submit()方式提交,在页面最下面加入以下JS代码
$(
function
() {
$(
"
#form1
"
).validate({
rules: {
LoginName: { required:
true
, regex:
"
^[0-9]+$
"
}
},
messages: {
LoginName:
"
<%=Resource.LoginName + Resource.WordSpace + Resource.CanNotBeBlank%>
"
},
errorLabelContainer:
"
#messageBox
"
,
wrapper:
"
li
"
});
});
4.以Ajax方式提交到服务器的,JS代码要改为:
var
validate
=
null
;
var
opts
=
{
rules: {
LoginName: { required:
true
, regex:
"
^[a-zA-Z][a-zA-Z0-9._-]{3,20}$
"
}
},
messages: {
LoginName:
"
请输入正确的登陆名
"
},
errorLabelContainer:
"
#messageBox
"
,
wrapper:
"
li
"
};
function
checkForm() {
var
b
=
validate.checkForm();
validate.showErrors();
return
b;
}
$(
function
() {
validate
=
$(
"
#form1
"
).validate(opts);
});
function
SaveUser() {
if
(
!
checkForm()) {
return
;
}
//
...........
}
要支持regex方式的验证,请在jquery.validate.js加入:
//
正则表达式
$.validator.addMethod(
"
regex
"
,
function
(value, element, regexp) {
var
check
=
false
;
var
re
=
new
RegExp(regexp);
return
this
.optional(element)
||
re.test(value);
},
"
Please check your input.
"
);
以上代码已实现双语化提示
其它常用的验证方式有:
required, remote, minlength, maxlength, rangelength, min, max, range, email, url, date, dateISO, number, digits, creditcard, accept, equalTo等
可参见:
http://docs.jquery.com/Plugins/Validation/validate