【问题标题】:How to make RequiredFieldValidator disappear and then appear?如何使RequiredFieldValidator消失然后出现?
【发布时间】:2011-07-16 17:27:50
【问题描述】:

我希望必填字段验证器仅在出现错误时才可见..不是一直可见..我怎样才能做到这一点?

<asp:RequiredFieldValidator
    runat="server"
    ControlToValidate="Editor1"
    ErrorMessage="fffffff"
    ForeColor="#CC0000"
    Display="Dynamic" />

当我运行页面时,错误消息就会出现..我希望它在出现错误时出现..当字段为空时!!

【问题讨论】:

  • 您能否详细说明此语句“我希望必填字段验证器仅在出现错误时才可见”
  • 也许这个验证器告诉你有一些意外的 Post 尝试正在进行...将行为与干净的新页面上的行为进行比较。

标签: c# .net asp.net validation requiredfieldvalidator


【解决方案1】:

在当前页面中出现问题的唯一原因是,在页面加载事件中,某处 Page.Validate() 被调用,您需要检查它。

我已经在最后测试了这个示例,验证器在页面加载时没有向我触发。

您可以在单独的新页面中尝试此操作吗?

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server"
ControlToValidate="TextBox1"
ErrorMessage="fffffff"
ForeColor="#CC0000"
Display="Dynamic" />
    <asp:Button ID="Button1" runat="server" Text="Button" />

如果您检查上述示例,它不会在页面加载时触发验证器,但您可以添加此代码,您会发现,验证器在页面加载时触发..

protected void Page_Load(object sender, EventArgs e)
{
    Page.Validate();
}

请注意,我已经在新页面上测试了这两种情况,只需尝试一下,您就会明白问题所在。

【讨论】:

  • 验证器工作没有问题,是它的编辑器以某种方式告诉它它是空的......也许我应该动态检查验证器并忽略 requiredfieldvalidator?
  • 是的,你可以。但我建议您,您可以在单击按钮时在 JavaScript 中检查它。
【解决方案2】:

如果您考虑一下,在页面加载时该字段是空的......因此是一个错误。为 requiredfieldvalidator 提供InitialValue="" 的属性,这应该可以满足您的需求。

【讨论】:

  • 它仍然无法解决问题..那是因为 rquiredfieldvalidator 监视编辑器..这是 ajax...这就是为什么我认为它不起作用
  • 你尝试过初始值还是只是假设?
  • 是的..我试过了..验证器控件没有附加属性..但仅仅是因为编辑器控件是一个 ajax 控件..它会产生问题
【解决方案3】:

将必填字段验证器的显示属性设置为动态

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    相关资源
    最近更新 更多