2011-06-03 62 views
1

我搜索了一種方法來禁用顯示在無效表單元素旁邊的錯誤消息,並且我只找到了自定義消息的方法,而不是完全阻止它們。使用JQuery驗證器擴展時禁用錯誤消息

我想:

jQuery.extend(jQuery.validator.messages, { 
    required: "" 
} 

但仍然放置一個空格我旁邊的文本框,並拋出了定位。任何人都知道我可以做到這一點的方式?

+0

替換' – Ibu 2011-06-03 06:27:32

+0

消息它仍然加空格=( – 2011-06-03 06:32:04

+0

手動驗證也許 – Ibu 2011-06-03 06:41:01

回答

2

你可以使用CSS來隱藏他們

label.error { display:none; } 

這不是一個完美的解決方案,但它會工作

4
$('#submit').click(function(){ 
    $("#contactform").validate({ 
     errorPlacement: function(error, element) { }, 
     debug:true 
    }) 
}); 

離開errorPlacement線空白的伎倆。

+0

+1 - 更換具有空白函數的驗證方法比隱藏生成的錯誤標籤要好得多 – 2013-01-17 20:06:21

+0

這是正確的方法,並且不會像響應sim一樣建議'errorPlacement'關於這裏的問題。 – Mandible79 2014-10-07 11:33:34

2

我創建了一個覆蓋現有的「必需」驗證器,不返回任何錯誤消息。

過乘坐所需的方法:

// Creates the NEW validator method 
jQuery.validator.addMethod('requiredNoMsg', jQuery.validator.methods.required, ''); 

// Creates a new CSS Rule for the validator method 
// so we can add it like "class='requriedNoMsg'". 
jQuery.validator.addClassRules('requiredNoMsg', { requiredNoMsg: true }); 

完整的例子:

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>Demo</title> 
    <!-- jQuery 1.6.1 --> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" charset="utf-8"></script> 
    <!-- jQuery Validate 1.8.1 --> 
    <script type="text/javascript" src="https://github.com/jzaefferer/jquery-validation/raw/master/jquery.validate.js" charset="utf-8"></script> 
    <script type="text/javascript" src="https://github.com/jzaefferer/jquery-validation/raw/master/additional-methods.min.js" charset="utf-8"></script> 

    <style type="text/css"> 
     body { margin: 0; padding: 0; font-family: Verdana, Tahoma, Arial, sans-serif; } 
     fieldset.main { margin: 1em; padding: 1em; width: 400px; font-size: .9em; } 
     fieldset.main ol { padding: 1em 1em 0 1em; list-style: none; } 
     fieldset.main li { padding-bottom: .5em; } 
     fieldset.main ol li label { display: block; width: 12em; margin-right: 1em; } 
     input[type=button] { width: 6em; height: 2.5em; } 
     input[type=checkbox] { } 
     input[type=text].error { border: 1px dotted red; background-color: yellow;} 
    </style> 
    <script type="text/javascript"> 
     jQuery.validator.addMethod('requiredNoMsg', jQuery.validator.methods.required, ''); 
     jQuery.validator.addClassRules('requiredNoMsg', { requiredNoMsg: true }); 

     $(document).ready(function() { 
      $('#myform').validate(
       {submitHandler: function() { alert('Validation Passed!'); }} 
      ); 
     }); 
     </script> 
</head> 
<body> 
    <form id="myform" method="get" action=""> 
    <fieldset class="main"> 
     <ol> 
      <li> 
       <label for="CustomerCode" class="left"> 
        Customer Code</label> 
       <input type="text" id="CustomerCode" name="CustomerCode" class="requiredNoMsg" /> 
      </li> 
      <li> 
       <label for="DeliveryCode" class="left"> 
        Delivery Code</label> 
       <input type="text" id="DeliveryCode" name="DeliveryCode" class="requiredNoMsg" /> 
      </li> 
      <li> 
       <input type="submit" id="Add" value="Add" /> 
      </li> 
     </ol> 
    </fieldset> 
    </form> 
</body> 
</html>