2011-04-14 141 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')); 
    } 

});