Проверка, чтобы заставить пользователя заполнить все два текстовых поля или нет
У меня два 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
и затем он нажимает на кнопку, предупреждение валидатора не показывает ему разрешить ему возобновить, но это не работает, как я могу сделать это?
1 ответ
Используйте логику. Задавать Required Field validator
на обоих textboxes
, а также disable
второе текстовое поле. Если пользователь вводит что-либо в 1-й textbox
затем включите 2-й textbox
,
Вы можете реализовать это с помощью JavaScript. Просто установите событие textchange первого текстового поля и проверьте, если его длина текста больше 1, затем включите 2-ое текстовое поле.
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;
}