客户端自定义验证器

时间:2012-02-10 19:24:46

标签: asp.net

我正在尝试进行客户端自定义验证。我的aspx页面中有以下代码,但我一直收到错误

  

System.Web.HttpException(0x80004005):控制'chkList_Counts'   由'validationCheck'的ControlToValidate属性引用   无法验证。在   System.Web.UI.WebControls.BaseValidator.CheckControlValidationProperty(字符串   name,String propertyName)at   System.Web.UI.WebControls.CustomValidator.ControlPropertiesValid()at   System.Web.UI.WebControls.BaseValidator.OnPreRender(EventArgs e)at   

的System.Web.UI.Control.PreRenderRecursiveInternal()

我甚至看不到我的页面。我在页面显示之前立即收到错误。

以下是我的代码

   <div> 
          <asp:Panel ID="panel3" runat="server" CssClass="cis_edit_pnl" 
              GroupingText="Counts" Width="1240px"> 
              <asp:CheckBoxList ID="chkList_Counts" runat="server" 
                   RepeatDirection="Horizontal" 
                   RepeatColumns="3" Width="1060px"> 
              </asp:CheckBoxList> 
               <asp:CustomValidator ID="validationCheck" runat="server" ControlToValidate="chkList_Counts" ClientValidationFunction="check_checkBoxList" EnableClientScript="true" ErrorMessage="At least one of the check boxes should be checked"> 
                </asp:CustomValidator> 
         </asp:Panel> 
  </div>

我的javascript函数就像这样

    function check_checkBoxList(sender, args) { 
        debugger; 
        if (check_Counts() == false) { 
            args.IsValid = false; 
            return; 
        } 
        args.IsValid = true; 
        return; 
    } 

 function check_casrepCounts() { 
        var control; 
        control = document.getElementById("<%=chkList_Counts.ClientID %>").getElementsByTagName("input"); 
        if (eval(control)) { 

            for (var i = 0; i < control.length; i++) { 
                if (control[i].checked == true) 
                    return true; 
            } 
            return false; 
        } 
    }

提前致谢。

1 个答案:

答案 0 :(得分:0)

现在工作正常,我只需删除controlToValidate就可以了。