【发布时间】:2011-10-25 17:52:03
【问题描述】:
我有以下代码
<html>
<head>
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery-1-4-2.js"></script>
<script type="text/javascript" src="js/jquery_validate.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#form1").validate({
rules: {
fld1: {
methodtwo: true,
methodone: true
}
},
messages: {
fld1: {
methodtwo: "<br> 2Wrong Project Name.",
methodone: "<br> 1Wrong Project Name."
}
}
});
});
$.validator.addMethod('methodone', function (value) {
return /^[a-zA-Z0-9]+$/.test(value);
}, 'wrong1.');
$.validator.addMethod('methodtwo', function (value) {
return /^[a-zA-Z^0-9]+$/.test(value);
}, 'wrong2.');
</script>
</head>
<body>
<form id="form1"name="form1" action="" method="get">
<table width="80%" border="0">
<tr>
<td><input type="text" name="fld1" id="idfld1"></td>
</tr>
<tr>
<td><input type="submit" name="submit" id="idsubmit"></td>
</tr>
</table>
</form>
</body>
</html>
执行上述代码后,我期待如果我们进入
- 字母 a-zA-z 然后它将接受输入并接受
- 任何特殊字符都会显示错误并显示错误
- 但是当我们输入数字 0-9 时,我期待它会显示方法二的错误消息。但它接受了它。
请解释一下为什么会这样?当我正在检查如果两个相反的验证规则应用于一个字段时会发生什么。
请朋友们解释一下,这段代码有什么问题吗?或者一个验证规则抑制了另一个?
谢谢!
【问题讨论】:
标签: jquery regex jquery-validate