繁体   English   中英

如何在RadListView中使用CustomValidator验证CheckBox

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM