2 回答

TA貢獻1804條經驗 獲得超2個贊
您可以使用一個類并根據您的目的使用單個 customValidator。因此,您的代碼將如下所示。
<h1>Agreements</h1>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="*" ClientValidationFunction = "ValidateCheckBoxes"></asp:CustomValidator>
<asp:Repeater ID="rptAgreements" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td valign="top" style="padding:10px;">
<asp:CheckBox ID="Agreements" value='<%# Eval("AgreementID") %>' runat="server" ClientIDMode="Static" CssClass="Agreement"/>
</td>
<td style="padding:10px;">
<asp:Label ID="lblAgreementText" runat="server" Text='<%# Eval("AgreementText") %>' />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<script type = "text/javascript">
function ValidateCheckBoxes(sender, args) {
if ($('input.Agreement').not(':checked').length == 0) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}

TA貢獻1827條經驗 獲得超8個贊
您在代碼中分配 ClientIDMode="Static" 將在 Html 中生成重復的 Id,并且它不是有效的 html。
您可以為復選框分配類,并在 JS 中計算協議復選框和選定的復選框,然后您可以比較數字。如波紋管:
<input type="checkbox" class="agreement" value="1"> agreement 1
<input type="checkbox" class="agreement" value="2"> agreement 2
<input type="checkbox" class="agreement" value="3"> agreement 3
<input type="checkbox" class="agreement" value="4"> agreement 4
<input type="submit" value="GO" id="btn" />
$('#btn').click(function(){
var chkAll=$('input.agreement').length;
var chkSelected = $('input.agreement:checked').length;
alert(chkAll==chkSelected);
});
- 2 回答
- 0 關注
- 173 瀏覽
添加回答
舉報