必填字段验证器未触发

Ali*_*lin 10 asp.net

我遇到了一个带有TextBox和RequiredFieldValidator的标准ASP.NET页面的问题.重现的步骤非常简单:

  1. 在页面上放置TextBox
  2. 在页面上放置一个RequiredFieldValidator
  3. 将RequiredFieldValidator指向TextBox
  4. 运行应用程序
  5. Tab键远离TextBox,RequiredFieldValidator不显示
  6. 输入文本,然后删除文本和那些标签,RequiredFieldValidator确实显示

在回发后,RequiredFieldValidator在这两种情况下都能正常工作,但是在将某些内容输入文本框(然后删除)之前,似乎客户端代码没有被触发.

有没有人有解决方案,而不是自己乱砍JavaScript?

Jim*_*ger 4

这种行为是否可能是有意设计的,目的是在用户输入之前抑制验证控件的出现?

一般来说,只要单击 CausesValidation 设置为 true 的控件(例如提交按钮),就会调用 Validate()。

无论如何,一个穷人的解决办法是,您可以从 Load 事件处理程序调用页面 Validate() 函数。这将使事情更清楚地标记出他们需要输入内容的快乐用户。例如

protected void Page_Load(object sender, EventArgs e)
{
    Validate();
}
Run Code Online (Sandbox Code Playgroud)