我在做一些逻辑上非常简单的事情,但它不起作用。
我在文本框中有一个必填字段验证器。在选择单选按钮时,必须在文本框上放置一些内容。
1)我尝试添加一个必需的字段验证器,它被禁用,然后Onchecked改变了radiobutton的事件,启用了必需的字段验证器。但这不起作用 2)我保持启用所需的字段验证器,并将文本框的文本作为radiobutton的#.Oncheckedchanged事件我清除了文本框的文本,但rValidator仍然无效。 尝试过String.empty并传递值。
我只在服务器端需要这个。在我的头上呆了好几个小时都找不到出路。复制粘贴下面的代码。 任何帮助将不胜感激。
<asp:RadioButton ID="rbNAVEst" GroupName="NAVEstimate2" runat="server" />
<asp:TextBox ID="tbMonNAVEst" Text="Insert [0-100]" runat="server"></asp:TextBox>  
<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();
}
答案 0 :(得分:0)
您检查的radiobutton更改会触发回发,但必需的字段验证程序将在客户端进行验证,这会阻止您。因此,您应该在客户端禁用所需的归档验证器。为该单选按钮编写客户端onCheckedChange事件,然后在该事件中,使用javascript启用或禁用客户端中的requiredfield验证器。 你可以使用以下的javascript功能
ValidatorEnable(getElelementById('#<%=rfvNAVEStimate.ClientID %>') ,fale); // this will disable the validator
如果您通过true
。它将启用验证器
答案 1 :(得分:0)
好的伙计...... 如果我使用rfvNAVEstimate.ISvalidate()函数,它会被触发.. 问题解决了......仍然在这里为其他人发布。