jquery.validate,错误信息位置

张映 发表于 2011-01-19

分类目录: nodejs/vue/js/jquery

标签:,

好长时间没有用jquery.validate.js这个插件了,忘得差不多了。唉,好东西还是要经常拿出来看看的,今天用jquery.validate来做一个小东西,遇到一个问题,就是错误提示信息的位置问题,如果知道的话,很简单。以前遇到过,可是忘了,现在标记一下,将来在忘了,在回过头看看。俗话说的好,好记性不如烂笔头。

举个例子,大家就知道怎么回事了。

 rules: {
 name:{
 required:true,
 rangelength:[1,20]
 },
 validateCode: {
 required:true,
 number:true,
 rangelength:[5,5]
 }
 },
 messages: {
 name: {
 required: "请输入命令名",
 rangelength: jQuery.format("长度请控制在{0} ~ {1}")
 },
 validateCode: {
 required: "请输入验证码",
 number: "请输入数字",
 rangelength: jQuery.format("长度必须是5位")
 }
 },

 success: function(label) {
 label.addClass("error checked");
 },

 submitHandler: function(form) {
 if($("#RegionId").val() == '0'){
 $("#citySelect").attr("class","error").html('请选择区域').show();
 $("#RegionId").attr("class","error");
 }else{
 $("#RegionId").attr("class","valid");
 $("#citySelect").attr("class","valid").html('success').show();
 form.submit();
 }
 }
 });

在上面的代码中,我并没有添加错误信息存放位置的方法,我们看一下效果

<td>
<input type="text" maxlength="30" value="" id="name" name="name">
<label for="name" generated="true">请输入命令名</label>                                   //错误信息会自动根在输入框的后面。
</td>

如果我们加上错误信息位置的方法errorPlacement来看一下效果是什么样子的。

 rules: {
 name:{
 required:true,
 rangelength:[1,20]
 },
 validateCode: {
 required:true,
 number:true,
 rangelength:[5,5]
 }
 },
 messages: {
 name: {
 required: "请输入命令名",
 rangelength: jQuery.format("长度请控制在{0} ~ {1}")
 },
 validateCode: {
 required: "请输入验证码",
 number: "请输入数字",
 rangelength: jQuery.format("长度必须是5位")
 }
 },
errorPlacement: function(error, element) {                             //错误信息位置设置方法
 error.appendTo( element.parent().next() );                            //这里的element是录入数据的对象
 },
 success: function(label) {
 label.addClass("error checked");
 },

 submitHandler: function(form) {
 if($("#RegionId").val() == '0'){
 $("#citySelect").attr("class","error").html('请选择区域').show();
 $("#RegionId").attr("class","error");
 }else{
 $("#RegionId").attr("class","valid");
 $("#citySelect").attr("class","valid").html('success').show();
 form.submit();
 }
 }
 });

来看一下效果

<tr>
 <th><label for="name" id="lname"><code title="必填">*</code>命令名称</label></th>
 <td><input type="text" maxlength="30" value="" id="name" name="name"></td>
 <td><label for="name" generated="true">请输入命令名</label></td>                     //错误信息跑到这儿来了,
 </tr>

够简单吧,在简单的东西,长时间不用也会忘的。



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/jsjquery/1206.html

1 条评论

  1. sun 留言

    感谢