我想在特定的地方显示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",
});
答案 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);
}