Customvalidator控件 - SetFocusOnError =“True”不适用于CheckboxList

时间:2012-10-16 12:23:29

标签: jquery asp.net

我正在验证一个复选框列表,使用自定义验证器和jquery来检查所需的验证,它的验证正常,但它没有关注错误。

CheckBoxList和CustomValidator的asp.net是:

<asp:CheckBoxList ID="cblSellerCategories" 
 runat="server" 
 RepeatDirection="Horizontal"> 
</asp:CheckBoxList>


<asp:CustomValidator ID="CustomValidator2" 
 runat="server"
 ClientValidationFunction="CheckSellerCategory"
 CssClass="errorBox" 
 ErrorMessage="Select seller type" 
 SetFocusOnError="True"> 
</asp:CustomValidator>

和Jquery是

function CheckSellerCategory(sender, args) {
args.IsValid = false;
$("[id$='cblSellerCategories']").find(":checkbox").each(function () {
    if (jQuery(this).attr("checked")) {
        args.IsValid = true;
        return;
    }
});
}

如何关注错误(如果未选中任何复选框)。我也尝试过验证组,但没有运气。

1 个答案:

答案 0 :(得分:4)

如果SetFocusOnError无效,您可以手动设置焦点

if (!args.IsValid)
   $("[id$='cblSellerCategories'] :checkbox:first").focus();

所以你的代码将是

function CheckSellerCategory(sender, args) {
    args.IsValid = false;
    $("[id$='cblSellerCategories']").find(":checkbox").each(function () {
        if (jQuery(this).attr("checked")) {
            args.IsValid = true;
            return;
        }
    });
    if (!args.IsValid)
       $("[id$='cblSellerCategories'] :checkbox:first").focus();        
}