Jquery Validate errorPlacement - PullRequest
       17

Jquery Validate errorPlacement

0 голосов
/ 30 августа 2011

Я проверяю форму с помощью jquery validate, и у меня возникают небольшие проблемы с установкой ошибки. Поле ввода имеет разные уровни вложенности, некоторые в 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, см. 'Method' select находится во вложенном 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 Ответ

3 голосов
/ 30 августа 2011

Если вы хотите конкретно указать сообщение об ошибке в определенном div или span, вы можете просто написать в месте размещения ошибки для этого элемента что-то вроде этого.

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

Здесь your_field_err - это идентификатор вашей ошибки div или span. а your_field - это идентификатор поля. Как и в вашем коде вы упомянули сложную структуру. Пожалуйста, убедитесь, что вы помещаете подобные ошибки в верхнюю часть, а наиболее общие, как в коде внизу.

...