强制用户填写所有两个文本框或两个都不填写的验证
本文关键字:两个 验证 用户 文本 | 更新日期: 2023-09-27 18:17:04
我在我的页面上有两个TextBox
,我想当用户填写其中一个时,我警告他填写另一个文本框,我的意思是强迫用户填写所有两个文本框或两者都没有。如果适用的话,如何使用验证器实现这一点?
我在我的页面上添加了这个控件
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:RequiredFieldValidator ControlToValidate="txt1" Enabled="True" ID="required_validator1" runat="server" Text="Required" Visible="True" ValidationGroup="T"/>
<asp:TextBox ID="txt1" OnTextChanged="TextBox1_TextChanged" runat="server" AutoPostBack="True" />
<asp:RequiredFieldValidator ControlToValidate="txt2" Enabled="True" ID="required_validator2" runat="server" Text="Required" Visible="True" ValidationGroup="T" />
<asp:TextBox ID="txt2" CausesValidation="False" Enabled="False" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="T" OnClick="Button1_Click" />
和在我的Webform.aspx.cs
中:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if (txt1.Text.Length > 0)
txt2.Enabled = true;
}
:
protected void Button1_Click(object sender, EventArgs e)
{
if (txt1.Text == string.Empty && txt2.Text == string.Empty)
{
required_validator1.Enabled = false;
required_validator2.Enabled = false;
}
}
我想当用户没有在txt1
上写任何东西,然后他点击按钮,验证器警告不显示他,让他恢复,但它不起作用,我该怎么做?
使用逻辑。"textboxes
"设置"Required Field validator
","disable
"设置第二个文本框。如果用户在第一个textbox
中输入任何内容,则启用第二个textbox
。
你可以用javascript实现它。只需设置第一个文本框的textchange事件,并检查其文本长度是否大于1,然后启用第二个文本框。
ASPX:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:RequiredFieldValidator ControlToValidate="txt1" Enabled="True" ID="required_validator1" runat="server" Text="Required" Visible="True" />
<asp:TextBox ID="txt1" OnTextChanged="TextBox1_TextChanged" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="txt2" Enabled="True" ID="required_validator2" runat="server" Text="Required" Visible="True" />
<asp:TextBox ID="txt2" CausesValidation="False" Enabled="False" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txt1" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>
c# :
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if(txt1.Text.Length > 0)
txt2.Enabled = true;
}