多个控件的必填字段验证程序问题

时间:2010-12-22 10:12:22

标签: asp.net

在我提交表单的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时才没有服务器回发。我使用的只是javascript库是Microsoft Ajax Framework.I还必须包含这个验证组的形式与其他一些控件。我已经知道我的知识一个必需的字段验证器控件只能验证单个UI控件(asp.net forum thread)社区中的任何人是否以直观的方式处理这类问题?

2 个答案:

答案 0 :(得分:3)

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

  <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函数来检查您的值。 如果javascript已关闭,您还应该有一个servervalidate函数。

答案 1 :(得分:1)

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

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

       }

}

在您的sumbit按钮上调用此功能;