ASP.Net TextBox验证

时间:2009-04-16 13:56:33

标签: asp.net validation

我有2个文本框控件,其中将输入日期值。我想要它,以便如果在其中一个文本框中输入日期,则需要另一个日期。

这可能是一个真正的noobie问题,但任何帮助将不胜感激。

提前致谢。

编辑:只是为了澄清一点。我使用比较验证器来检查输入到文本框中的值是否为日期,这不是问题。问题是我想要一些验证,以便如果将值输入到一个文本框中,则需要另一个文本框。否则,如果两个文本框都保留为空,则两者都不需要。

4 个答案:

答案 0 :(得分:2)

嗯,你可以做两件事之一。首先,正如danish所说,使用textbox1的textchanged属性将validator2的Enabled属性设置为true或false。只需确保将textbox1的autopostback属性设置为true即可。如果将它包装在更新面板中,这样看起来会更好,这样用户就不必看到自动回复。

另一个选项是使用自定义验证程序控件,您可以在ServerValidate()事件中编写验证逻辑。然后,您可以检查在textbox1中输入的文本是否为日期,然后相应地验证textbox2。

答案 1 :(得分:1)

如果您使用内置验证控件,则可以根据txtDate2的值在Page_Load方法中为txtDate1启用/禁用一个。

protected void Page_Load(object sender, EventArgs e)
{
   dateValidator2.Enabled != String.IsNullOrEmpty(txtDate.Text);
}

在您的aspx文件中;

<asp:RequiredFieldValidator ID="dateValidator2" Enabled="false" runat="server" ErrorMessage="Some message"></asp:RequiredFieldValidator>

答案 2 :(得分:0)

为文本框保留禁用的必填字段验证程序2.在textbox1的textchanged事件中启用它。确保在事件中检查textbox1中文本的长度,因为即使用户删除了在textbox1中输入的文本,TextChanged事件也会触发。

答案 3 :(得分:0)

如果您想获得最佳用户体验,则应在客户端进行此验证。

RequiredFieldValidator控件实际上生成javascript代码以在客户端执行验证,但它没有您正在寻找的“两者兼有”功能。

因此,最好的解决方案是自己编写javascript。有许多框架可以使这更容易。我建议jQuery。