必填字段验证程序无法从代码隐藏中的 OnCheckedChanged 事件工作

本文关键字:隐藏 OnCheckedChanged 工作 事件 代码 字段 验证 程序 | 更新日期: 2023-09-27 18:31:38

我正在做一些逻辑上非常简单的事情,但它不起作用。

我在文本框中有一个必填字段验证器。在选择单选按钮时,文本框中必须有内容。

1)我尝试添加一个禁用的必填字段验证器,然后启用单选按钮的Oncheck更改事件,启用必填字段验证器。但这行不通2)我保持了必填字段验证器的启用状态,文本框的文本为#。选中单选按钮的更改事件我清除了文本框的文本,但 rValidator 仍然不起作用。已经尝试了String.empty和传递值。

我只需要在服务器端使用它。伤了好几个小时都找不到出路。复制粘贴下面的代码。任何帮助将不胜感激。

<asp:RadioButton ID="rbNAVEst"  GroupName="NAVEstimate2" runat="server" />
                                    <asp:TextBox ID="tbMonNAVEst" Text="Insert [0-100]" runat="server"></asp:TextBox> &nbsp
                        <asp:DropDownList ID="ddlNavEst2" Width="100px" runat="server">
                            <asp:ListItem> Hours </asp:ListItem>
                            <asp:ListItem> Business Days</asp:ListItem>
                            <asp:ListItem> Calendar Days</asp:ListItem>
                        </asp:DropDownList> <asp:RangeValidator
                                        ID="RangeValidator1" runat="server" Display="Dynamic" Type="Integer" ErrorMessage="Enter Values Between 0 to 100 Only" ControlToValidate="tbMonNAVEst" MaximumValue="100" MinimumValue="0"></asp:RangeValidator>
                        <br />
                          <asp:Label ID="lblBlankNAVEst2" runat="server" Width="60px"></asp:Label>
                            <asp:RadioButton ID="rbOtherNAVEst" AutoPostBack="true"  OnCheckedChanged="ClearNAVEstimate"  GroupName="NAVEstimate2" runat="server" />
                            <asp:Label ID="lblOtherNAV" runat="server" Text="Other"></asp:Label>
                            <asp:TextBox ID="tbOtherNAV" Text="#" runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator  ID="rfvNAVEStimate" Display="Dynamic" ControlToValidate="tbOtherNAV" Enabled="true" runat="server" ErrorMessage="Please Enter Values" SetFocusOnError="True"></asp:RequiredFieldValidator>
                              <br /> 

代码隐藏是:

protected void ClearNAVEstimate(Object sender, EventArgs e)
        {
         tbOtherNAV.Text = String.Empty;
        // rfvNAVEStimate.Enabled = true; ( tried this when I had Validators enabled as false.This also did not work)
         tbOtherNAV.Focus();          
         }

必填字段验证程序无法从代码隐藏中的 OnCheckedChanged 事件工作

单选按钮的已选中更改会触发回发,但必填字段验证器将在客户端进行验证,这会阻止您。因此,您应该在客户端禁用所需的归档验证器。为该单选按钮编写客户端 CheckedChange 事件,然后在该事件中,使用 javascript 在客户端启用或禁用必填字段验证程序。您可以使用以下JavaScript功能

ValidatorEnable(getElelementById('#<%=rfvNAVEStimate.ClientID %>') ,fale); // this will disable the validator

如果您传递true . 它将启用验证器

好的伙计们...如果我使用 rfvNAVEstimate.ISvalidate() 函数,它会被触发。问题已解决...仍然在这里发布给其他人。