Jquery验证errorPlacement

时间:2011-08-30 09:59:45

标签: jquery jquery-selectors jquery-validate

我正在使用jquery验证来验证表单,并且在一致地设置错误位置时遇到一些麻烦。输入字段具有不同的嵌套级别,一些在div中,一些在嵌套的div中。但是对于所有错误,我希望将其置于跨度中,并在相关输入字段上方加上“预热”类。我试过最亲近的父母,似乎不行。我可以显式遍历树,但只有在元素处于同一嵌套级别时才能工作?我认为最近的应该可以工作,但它不会(我做错了什么)任何帮助表示赞赏。

$("#paymentpreferences").validate({
    rules: {    
        minpayment: {
            digits: true,
            min: 5
            }       
    },
    errorPlacement: function(error, element) {      
        $(element).parents('span .warming :first').html(error);
    },
    success: function(label){           
        label.next().next().addClass('tick');
    }
}); 

示例Html,请参阅'方法'选择是嵌套div,但accountno不是

                                    <span class="warming"></span>
                                      <div class="lab_box"><label class="lab">payment type</label></div>
                                        <div class="input_box">
                                            <div class="gender_box">

                                                <select name="method" id="method" tabindex="1" class="ins required">
                                                <option value="1" label="PayPal">PayPal</option>
                                                </select>                                       
                                            </div>
                                            <a href="#" title="tooltip_paymentmethod" class="question tooltips"></a>
                                            <div class=" fill"></div>
                                        </div>
                                        <div class="wb_clear"></div>
                                        <span class="warming"></span>

                                        <div class="lab_box"><label class="lab">account number</label></div>
                                        <div class="input_box">
                                            <span>
                                            <input type="text" name="accountno" id="accountno" value="asdasd" tabindex="2" class="ins required" size="30" />
                                            </span>
                                            <a href="#" title="tooltip_accountno" class="question tooltips"></a>
                                            <div class="fill"></div>
                                        </div>

1 个答案:

答案 0 :(得分:3)

如果要在特定div或span中专门指定错误消息,可以在该元素的错误位置中写入类似的内容。

if ( element.is("#your_field") )
     error.appendTo('#your_field_err');

此处your_field_err是您的错误div或span的ID。 and__field是该字段的id。 就像你的代码一样,你提到了复杂的结构。 请确保将这些错误放置放在最顶层,最通用的放在底部的代码中。