Проблема с сообщением об ошибке проверки jQuery - PullRequest
0 голосов
/ 30 июня 2011

Я хочу отобразить сообщение об ошибке, сгенерированное плагином проверки jQuery, в определенном месте.Как я могу это сделать?Например, у меня есть 2 переключателя, по умолчанию плагин генерирует сообщение об ошибке рядом с первым переключателем (перед текстом «1 год». Я хочу отображать после 2-го переключателя (после текста «2 года».я делаю это?

HTML:

<div >  
    <label for="period">Select period</label>
    <div class = "radio-buttons">
        <input type="radio" name="period" > 1 year
        <input type="radio" name="period" > 2 years 
        <span class="error">Display error message here.</span>  
    </div>                          
</div>

Я отображаю сообщение об ошибке в промежутке.

$("#test").validate({
            errorElement: "span",
    });

Ответы [ 2 ]

2 голосов
/ 30 июня 2011

Попробуйте это

$("#test").validate({
        errorElement: "span",
        errorPlacement: function(error, element) {
              error.appendTo(element.siblings("div.error"))
        }
});

И измените ваш контейнер ошибок на div, чтобы избежать промежутка внутри другого промежутка.

<div class = "radio-buttons">
    <input type="radio" name="period" > 1 year
    <input type="radio" name="period" > 2 years 
    <div class="error"></div>  
</div>   
1 голос
/ 30 июня 2011

Убедитесь, что в вашем коде есть соответствующие элементы, например <div id="expiryyear"> и т. Д.

errorPlacement: function(error, element) {
    if (element.attr("id") == "expirymonth" || element.attr("id") == "expiryyear" )
            error.insertAfter("#expiryyear");
    else if (element.attr("id") == "cvv")
            error.insertAfter("#cvvError");
    else if (element.attr("id") == "opt_havecreditterms" || element.attr("id") == "opt_applyforcreditterms" )
            error.insertAfter("#credit-option-error");
    else if (element.attr("id") == "bankstate" || element.attr("id") == "bankzip" )
            error.insertAfter("#bankzip");
    else
            error.insertAfter(element);

}
...