jQuery验证错误消息问题

时间:2011-06-30 11:37:22

标签: javascript jquery forms validation

我想在特定的地方显示jQuery验证插件生成的错误消息。我怎样才能做到这一点?例如,我有2个单选按钮,默认情况下插件会在第一个单选按钮旁边生成错误消息(在文本“1年”之前。我想在第二个单选按钮后显示(在文本“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 个答案:

答案 0 :(得分:2)

试试这个

$("#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 :(得分:1)

确保您的代码中包含<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);

}