如何使用jQuery在asp.net中输入真正的正则表达式验证器时启用或禁用按钮控件

Sun*_*eep 1 asp.net jquery

我正在处理一个应用程序。在这个应用程序中有一个文本框,我在上面应用了日历​​扩展器来输入日期。我还应用了正则表达式验证器以印度格式输入日期。我有一个按钮可以选择文本框中输入的日期上的所有数据。我这样做了:-

<table>
                                <tr>
                                    <td>Select Date :
                                    </td>
                                    <td>
                                        <asp:TextBox ID="txtDate" runat="server" ></asp:TextBox>
                                        <asp:CalendarExtender ID="cc" runat="server" Format="dd/MM/yyyy" TargetControlID="txtDate" ></asp:CalendarExtender>

                                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtDate"
                                            SetFocusOnError="true" ValidationGroup="Ad" ErrorMessage="Please Enter Date" Display="Dynamic">
                                        </asp:RequiredFieldValidator>
                                        <asp:RegularExpressionValidator ID="regEmail" runat="server" ControlToValidate="txtDate"
                                            SetFocusOnError="true" ValidationGroup="Ad" ValidationExpression="^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$"
                                            ErrorMessage="Invalid Date.">
                                        </asp:RegularExpressionValidator>
                                        <ajax:FilteredTextBoxExtender ID="ftbeDate" runat="server" TargetControlID="txtDate" ValidChars="0123456789/.">
                                        </ajax:FilteredTextBoxExtender>

                                    </td>
                                    <td>
                                        <asp:Button ID="btnSubmit" Font-Bold="true" CssClass="btn-info" runat="server" Text="View" OnClick="btnSubmit_Click" />
                                    </td>
                                </tr>
                            </table>
Run Code Online (Sandbox Code Playgroud)

我希望如果用户在文本框中输入正确的日期,那么按钮应该被启用,否则它应该被禁用。我不知道该怎么做。请帮助我。

Vig*_*r A 5

尝试这个:

   <asp:TextBox ID="txtDate" AutoPostBack="true" runat="server" OnTextChanged="txtDate_TextChanged" ></asp:TextBox>
                                        <ajax:CalendarExtender ID="cc" runat="server" Format="dd/MM/yyyy" TargetControlID="txtDate" ></ajax:CalendarExtender>

                                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtDate"
                                            SetFocusOnError="true" ValidationGroup="Ad" ErrorMessage="Please Enter Date" Display="Dynamic">
                                        </asp:RequiredFieldValidator>
                                        <asp:RegularExpressionValidator ID="regEmail" runat="server" ControlToValidate="txtDate"
                                            SetFocusOnError="true" ValidationGroup="Ad" ValidationExpression="^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$"
                                            ErrorMessage="Invalid Date.">
                                        </asp:RegularExpressionValidator>
                                        <ajax:FilteredTextBoxExtender ID="ftbeDate" runat="server" TargetControlID="txtDate" ValidChars="0123456789/.">
                                        </ajax:FilteredTextBoxExtender>
Run Code Online (Sandbox Code Playgroud)

并且您需要在后面的代码中添加此代码:

protected void txtDate_TextChanged(object sender, EventArgs e)
    {
        string input = txtDate.Text;

        // Here we call Regex.Match.
        Match match = Regex.Match(input, @"^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$",RegexOptions.IgnoreCase);

        // Here we check the Match instance.
        if (match.Success)
        {
            btnSubmit.Enabled = true;
        }
        else
        {
            btnSubmit.Enabled = false;
        }

    }
Run Code Online (Sandbox Code Playgroud)