jQuery验证插件 - 如何将1验证消息设置为与其他人不同

时间:2014-01-29 08:34:54

标签: javascript jquery html validation

我有一个正在使用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函数,则会显示其他验证消息,但不会显示我的自定义验证消息。

我怎样才能同时获得这两种行为?

1 个答案:

答案 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设置样式。

这似乎做了我想要做的事情。现在来重新隐藏信息!