我有一个正在使用jQuery验证插件验证的表单。 消息以正确的位置和正确的情况显示。
到目前为止,非常好。
我有1个正确验证的字段,但我需要将1个验证消息与其他字段区别对待。由于两个输入彼此相邻,我希望验证在它们下面(即在包裹它们的块下面)而不是在每个输入的右边。
这两个输入的验证是相互依赖的,即至少有一个必须有输入。验证规则有效,它只是我正在努力的定位。
我使用以下验证语法:
$('#formId').validate({
rules: {
},
messages : {
}
}
在我的HTML中,我创建了一个专门针对我试图自定义的(无线电)字段的标签:
<label for="radioName" id="radioNameId-invalid" class="error"">Some error message</label>
我尝试将内容添加到validate的'showErrors'函数中,该函数有效,但似乎在我的页面中没有显示任何其他验证消息。
showErrors: function(errors) {
var collectionMethodError = errors['collectionMethod'];
if(collectionMethodError) {
$('#radioNameId-invalid').text(errorString);
$('#radioNameId-invalid').css("display","block");
}
}
我想启用此错误,然后允许验证程序继续对其他字段执行默认行为。
如果我删除了showErrors函数,则会显示其他验证消息,但不会显示我的自定义验证消息。
我怎样才能同时获得这两种行为?
答案 0 :(得分:0)
我最终使用了errorPlacement函数而不是showErrors函数:
errorPlacement: function(error, element){
$(error).insertAfter(element);
// special case for display
if($(element).attr("name")=="radioName") {
$(error).insertAfter("#anElement"));
$("label[for=radioName].error").attr("id","invalid-radio-message");
}
}
简而言之,我正在为验证插件添加的标签添加ID,然后在我的CSS中为该ID设置样式。
这似乎做了我想要做的事情。现在来重新隐藏信息!