2011-04-14 153 views
3

我正在使用jquery驗證插件。 我有一個看起來像一個html:jquery驗證錯誤消息 - 更改消息的位置

<h2>Select A City</h2> 

<select class="required city-selection-list" id="city_city_id" name="city[city_id]"> 
    <option value=""></option> 

    <option value="146">San Francisco Bay Area</option> 
    <option value="147">San Francisco</option> 
    <option value="311">Los Angeles</option> 
    <option value="344">New York</option> 
    <option value="395">San Diego</option> 
</select> 

錯誤消息選擇框後目前顯示。 這會導致我的頁面向左移動並弄亂它的外觀。

如何在之後顯示它選擇A城市而不是內聯它。

感謝您的幫助。

回答

8

你可以改變你的選擇器和位置,但是這應該讓你知道它是如何工作的。

jQuery.validator.setDefaults({ 
    errorPlacement: function(error, element) { 
     if (element.hasClass("city-selection-list")) { 
      error.insertBefore(element); 
     } 
    } 
}); 
+0

內的所有錯誤,這是否覆蓋默認驗證?我將你的一段代碼添加到jquery.validation.js中,它抱怨說.validate-form不是一個函數。 \t //'http://docs.jquery.com/Plugins/Validation/Validator/setDefaults \t setDefaults:功能(設置){ \t \t $ .extend($ .validator.defaults,設置); (element.hasClass(「city-selection-list」)){error_lass.insertBefore(element);}} errorPlacement:function(errorClass,element)if(element.hasClass(「city-selection-list」)){errorId。 } } \t}' – truthSeekr 2011-04-15 00:17:58

+0

種類,它設置默認值。但是,像我一樣,你可以應用邏輯來隻影響某些元素。這裏是官方文檔的頁面,請看源代碼。 http://jquery.bassistance.de/validate/demo/custom-methods-demo.html – 2011-04-15 15:48:46

+0

您可以將規則設置爲特定的表單,而不會覆蓋默認的表單: '$('#form_name')。validate({0} {error} {error :function(error,element){ //某些代碼 } });' – zizoujab 2013-06-02 02:21:34

0

您還可以添加一個div容器下方H2

<div id='errorContainer'></div> 

添加errorPlacement:符合您的驗證碼,它會顯示errorCotainer DIV

$("#frm_register").validate(
{ 

// errorElement: "span",// by default em is used to display each error message 

    errorPlacement: function(error, element) { 
     error.appendTo($('#errorContainer')); 
    } 

});