0

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

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

1)我尝试添加一个必填字段验证器,它被禁用,然后单选按钮的 Onchecked 更改事件,启用必填字段验证器。但这不起作用 2)我已启用必填字段验证器,文本框的文本为 #单选按钮的 .Oncheckedchanged 事件我清除了文本框的文本,但 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();          
         }
4

2 回答 2

0

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

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

如果你通过true. 它将启用验证器

于 2013-09-17T08:54:43.630 回答
0

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

于 2013-09-18T09:15:01.700 回答