2012-03-05 67 views
-1

如何在回发asp.net页面之前为每个复选框执行requiredfield检查?所以至少需要检查一个复选框。requiredfield检查中继器中的asp.net复选框?

ASPX

<asp:Button ID="Submit" Text="Submit" runat="server" OnClick="Submit_Click" /> 
+0

此外,你应该用'JavaScript',因为它需要你回发到服务器之前完成此标记... – xandercoded 2012-03-05 00:22:56

回答

1

对于其中至少有一个被选中复选框组,我所知道的最简单的方法是使用一个<asp:CustomValidator />。编写JavaScript验证功能(以验证复选框并确保至少选中一个复选框)并将其分配给<asp:CustomValidator />

示例标记:

<asp:CheckBox ID="CheckBox1" runat="server" /> 
<asp:CheckBox ID="CheckBox2" runat="server" /> 
<asp:CheckBox ID="CheckBox3" runat="server" /> 
<asp:CheckBox ID="CheckBox4" runat="server" /> 
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Check at least one" ClientValidationFunction="atLeastOneIsChecked"></asp:CustomValidator> 

例的JavaScript:

function atLeastOneIsChecked(sender, args) { 
    var chk1 = document.getElementById('<%=CheckBox1.ClientId %>').checked; 
    var chk2 = document.getElementById('<%=CheckBox2.ClientId %>').checked; 
    var chk3 = document.getElementById('<%=CheckBox3.ClientId %>').checked; 
    var chk4 = document.getElementById('<%=CheckBox4.ClientId %>').checked; 

    args.IsValid = (chk1 || chk2 || chk3 || chk4); 
    return args.IsValid; 
}