论坛首页 Web前端技术论坛

jQuery validator addMethod 根据不同情况显示不同错误信息

浏览 4689 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-01  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="jquery-1.3.1.js" type="text/javascript"></script>
<script src="lib/jquery.validate.js" type="text/javascript"></script>
<script src="lib/jquery.validate.messages_cn.js" type="text/javascript"></script>
<style type="text/css">
* {
font-family: Verdana;
font-size: 96%;
}

label {
width: 10em;
float: left;
}

label.error {
float: none;
color: red;
padding-left: .5em;
vertical-align: top;
}

p {
clear: both;
}

.submit {
margin-left: 12em;
}

em {
font-weight: bold;
padding-right: 1em;
vertical-align: top;
}
</style>
<script type="text/javascript">
$(document).ready( function() {

var customError = "";
$.validator.addMethod("myvalidator", function(value, element) {
var returnVal = true;

if (value.length < 2) {
customError = "不能小于2字符";
returnVal = false;
}

if (value.length > 10) {
customError = "不能大于10字符";
returnVal = false;
}

if (value.indexOf('a') != -1 ) {
customError = "不能包含字符a";
returnVal = false;
}


//// 更多特殊情况处理

$.validator.messages.myvalidator = customError;
return returnVal;
}, "error " + customError);

$("#commentForm").validate( {
debug: true,     
focusInvalid: false, 
onkeyup: false, 
submitHandler: function(form){ 
form.submit();  
},

rules : {
username : {
/*
required :true,
minlength :2
*/
myvalidator: true
}
}
});

});
</script>

</head>
<body>

<div>
假设需要对某个字段进行几种特殊验证,按照jquery validation 提供的示例, <br/>
我们需要自定义几种方法,但有时候觉得这几种方法,合并在一个方法里,根据不同的情况,<br/>
显示不同的错误信息会更好,无奈jquery validation没有提供类似的例子。<br/>
不恰当的必须,validation 只有 if 句式,没有 if .. else if .. else 句式<br/>
下面的demo,就是为解决此问题的:<br/>
</div>


<form class="cmxform" id="commentForm" method="get" action="">
   <p>
       <label for="cusername">请输入姓名 </label>
           <input id="username" name="username" />
   不能小于2字符 不能大于10字符 不能还有字符 a
       </p>
      
</form>
     <br/><br/> <br/><br/>
<div>
参考:<br/>
http://forum.jquery.com/topic/validation-plugin-changing-message-with-addmethod   <br/><br/>

http://blogs.teamb.com/craigstuntz/2009/01/15/37923/  <br/><br/>

http://stackoverflow.com/questions/447658/can-i-copy-clone-a-function-in-javascript  <br/><br/>
</div>
<div>
ps:1、英语不仅重要,会使用 google.com 查询更重要。
   2、http://code.google.com/p/goagent/ 进去之后,你懂的。
</div>
</body>
</html>
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics