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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM