![](/img/trans.png)
[英]Validate asp:CheckBox control on client side using JavaScript and CustomValidator control
[英]How to validate a CheckBox with CustomValidator within a RadListView
我有一个Telerik:RadListView
控件和其中的多个复选框。 我需要在提交表单之前验证这些复选框。 我已经尝试过使用ControlToValidate
属性的内置验证器,但是它给了我Control 'chkQuestion' referenced by the ControlToValidate property of 'chkQuestionValidator' cannot be validated.
错误Control 'chkQuestion' referenced by the ControlToValidate property of 'chkQuestionValidator' cannot be validated.
这是非常合乎逻辑的,因为它们都在RadListView
。
之后,我创建了一个CustomValidator;
<asp:CheckBox ID="chkQuestion"
CssClass="AcceptedAgreement"
Visible="true"
runat="server"
Text=" I confirm"
AutoPostBack="false" />
<asp:CustomValidator
ClientValidationFunction="CheckBoxRequired_ClientValidate"
EnableClientScript="true"
ID="chkQuestionValidator"
runat="server"
Enabled="true"
SetFocusOnError="true"
ErrorMessage="Please confirm"
ForeColor="Red" />
这些都在Telerik:RadListView
,这意味着我有多个,但是我无法在客户端自定义验证器函数中链接它们。
这是我的验证器功能:
function CheckBoxRequired_ClientValidate(sender, e) {
var c = jQuery(".AcceptedAgreement input:checkbox");
var chb = validator
if (c.is(':checked')) {
e.IsValid = true;
} else {
e.IsValid = false;
}
}
但是使用此功能,我无法单独验证它们。 当选中其中一个复选框时,此功能的作用就像选中了所有复选框一样。 这是因为它们都具有相同的CSS类,这就是我坚持的观点。
如果您帮助我,将不胜感激。
对于那些来这里寻求解决方案的人,这里是:
function handleSubmitForm(sender, args) {
var c = jQuery(".AcceptedAgreement input:checkbox");
c.each(function (index) {
if (!c[index].checked) {
args.set_cancel(true);
}
});
args.set_cancel(true);
}
基本上,我将这段代码分配给我的按钮,在回发之前调用它,如果不符合我的条件,它将停止回发。 您可以在if子句中做任何您想做的事情。
您可以调用此函数:
<telerik:RadButton ID="btnSubmit"
OnClientClicking="handleSubmitForm"
Text="Submit" OnClick="btnSubmit_Click" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.