【问题标题】:Required field validator issue for multiple controls多个控件的必填字段验证器问题
【发布时间】:2010-12-22 10:12:22
【问题描述】:

在我的提交表单中的 aspx 页面中,我有以下 html。

<p><asp:CheckBox ID="chkWishToDonateFrmTrust " runat="server" onclick="chkWishToDonateFrmTrustHandle(this)"  />
Wish to donate from following Trust for future transactions</p><p>&nbsp;</p><p><textarea name="textarea" cols="45" rows="5" class="txtTrustDetails" runat="server"
                                            id="txtTrustDetails" ></textarea></p>

我需要有一个必填字段验证控件来验证 txtTrustDetails 文本区域,前提是用户检查了 chkWishToDonateFrmTrust 而没有服务器回发 this.only javascript 库我使用的是 Microsoft Ajax Framework。我还必须包含这个表单中的验证组与其他一些控件。据我所知,一个必需的字段验证器控件只能验证单个 UI 控件(asp.net forum thread)社区中是否有人以直观的方式处理过此类问题?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    正如另一个答案所说,使用自定义验证器并执行类似的操作(未经测试,因此可能不太正确......):

      <script type="text/javascript">
        function validate(sender, args) {
            var checkBox = document.getElementById('<%=CheckBox1.ClientID %>');
            var textBox = document.getElementById('<%=TextBox1.ClientID %>');
    
            if (checkBox.checked == 1) {
    
                if (textBox.value == '') {
                    args.IsValid = false;
                } else { args.IsValid = true; }
            } 
        }
    
    </script>
    
     <asp:CheckBox ID="CheckBox1" runat="server" />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:CustomValidator ID="CustomValidator1" ControlToValidate="TextBox1" runat="server"
        ErrorMessage="CustomValidator" ClientValidationFunction="validate"></asp:CustomValidator>
    

    使用自定义验证器并使用 clientValidation 函数调用 javascript 函数来检查您的值。 你还应该有一个 servervalidate 函数,以防 javascript 关闭。

    【讨论】:

      【解决方案2】:

      你可以使用一个js函数或者一个jquery函数来做这个是如何实现这个的示例代码

      function chkValidate()
        {
           if($("#chkWishToDonateFrmTrust ").checked)
            {
                if($("#txtTrustDetails").val()=='')
                  {
                    args.IsValid = false;
                    //your custom message according to you
                   }
      
             }
      

      }

      在您的 sumbit 按钮 onclick 上调用此函数;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        • 2013-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多