2012-10-16 84 views
0

我正在使用自定義驗證器和jquery驗證複選框列表,以檢查所需的驗證,驗證正確,但沒有將注意力集中在錯誤上。Customvalidator控件 - SetFocusOnError =「True」不適用於CheckboxList

爲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; 
    } 
}); 
} 

如何獲得錯誤焦點(如果未選中任何複選框)。我也嘗試過驗證組,但沒有運氣。

回答

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();   
} 
相關問題