• jquery.validate,错误信息位置


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

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

    1. rules: { 
    2. name:{ 
    3. required:true, 
    4. rangelength:[1,20] 
    5. }, 
    6. validateCode: { 
    7. required:true, 
    8. number:true, 
    9. rangelength:[5,5] 
    10. }, 
    11. messages: { 
    12. name: { 
    13. required: "请输入命令名", 
    14. rangelength: jQuery.format("长度请控制在{0} ~ {1}") 
    15. }, 
    16. validateCode: { 
    17. required: "请输入验证码", 
    18. number: "请输入数字", 
    19. rangelength: jQuery.format("长度必须是5位") 
    20. }, 
    21.  
    22. success: function(label) { 
    23. label.addClass("error checked"); 
    24. }, 
    25.  
    26. submitHandler: function(form) { 
    27. if($("#RegionId").val() == '0'){ 
    28. $("#citySelect").attr("class","error").html('请选择区域').show(); 
    29. $("#RegionId").attr("class","error"); 
    30. }else{ 
    31. $("#RegionId").attr("class","valid"); 
    32. $("#citySelect").attr("class","valid").html('success').show(); 
    33. form.submit(); 
    34. }); 
     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();
     }
     }
     });

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

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

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

    1. rules: { 
    2. name:{ 
    3. required:true, 
    4. rangelength:[1,20] 
    5. }, 
    6. validateCode: { 
    7. required:true, 
    8. number:true, 
    9. rangelength:[5,5] 
    10. }, 
    11. messages: { 
    12. name: { 
    13. required: "请输入命令名", 
    14. rangelength: jQuery.format("长度请控制在{0} ~ {1}") 
    15. }, 
    16. validateCode: { 
    17. required: "请输入验证码", 
    18. number: "请输入数字", 
    19. rangelength: jQuery.format("长度必须是5位") 
    20. }, 
    21. errorPlacement: function(error, element) {                             //错误信息位置设置方法 
    22. error.appendTo( element.parent().next() );                            //这里的element是录入数据的对象 
    23. }, 
    24. success: function(label) { 
    25. label.addClass("error checked"); 
    26. }, 
    27.  
    28. submitHandler: function(form) { 
    29. if($("#RegionId").val() == '0'){ 
    30. $("#citySelect").attr("class","error").html('请选择区域').show(); 
    31. $("#RegionId").attr("class","error"); 
    32. }else{ 
    33. $("#RegionId").attr("class","valid"); 
    34. $("#citySelect").attr("class","valid").html('success').show(); 
    35. form.submit(); 
    36. }); 
     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();
     }
     }
     });

    来看一下效果

    1. <tr> 
    2. <th><label for="name" id="lname"><code title="必填">*</code>命令名称</label></th> 
    3. <td><input type="text" maxlength="30" value="" id="name" name="name"></td> 
    4. <td><label for="name" generated="true">请输入命令名</label></td>                     //错误信息跑到这儿来了, 
    5. </tr> 
    <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

  • 相关阅读:
    markdown grammar
    vs the address of offline package
    步步为营-66-Socket通信
    步步为营-65-线程小例子
    线程使用中常见的错误-“System.InvalidOperationException”线程间操作无效: 从不是创建控件“ ”的线程访问它。
    步步为营-64-进程&线程
    步步为营-63-Asp.net-get与post
    步步为营-62-Excel的导入和导出
    步步为营-61-拼音组件
    步步为营-60-代码生成器
  • 原文地址:https://www.cnblogs.com/jearay/p/4112091.html
Copyright © 2020-2023  润新知