验证器插件错误在启动时可见

时间:2012-05-17 11:25:02

标签: jquery asp.net jquery-validate

我在asp.net应用程序中使用jquery验证器插件(http://docs.jquery.com/Plugins/Validation) 这是我的元素:

<input id="chbConfirmDetails" type="checkbox" runat="server" class="required" />
<br />
<label for="<%=chbConfirmDetails.ClientID %>" class="alert">Please select this checkbox.</label>

问题是带有错误的标签在启动时是可见的而不是隐藏的。 我可以添加一个类来隐藏标签,但验证器插件不应该处理它吗?

为什么不隐藏错误?

更新 我明确添加标签,因为我希望将错误消息放在特定位置,而不是在输入之后。

2 个答案:

答案 0 :(得分:1)

您不需要为验证消息添加任何显式标记:插件在发生错误时负责生成它。所以输入字段应该就是你所需要的:

<input id="chbConfirmDetails" type="checkbox" runat="server" class="required" />

配置验证时,您可以控制插件如何生成错误标记 - 要添加“警报”类,您需要确保在调用.validate()时设置,例如:

$("form").validate({
   errorClass: "alert"
})

答案 1 :(得分:0)

您可以删除此行:

<label for="<%=chbConfirmDetails.ClientID %>" class="alert">Please select this checkbox.</label>

验证器插件本身会在验证时附加错误标签,并在指定某个类时返回false。

您需要使用自定义errorPlacement回调来放置错误消息,例如

errorPlacement: function(error, element) {
            if (element.type == 'checkbox') {
                error.insertAfter(element); //something like this, just an example
            }
            else {
                error.insertAfter(element);
            }
        }