【问题标题】:Problem with ValidationSummaryValidationSummary 的问题
【发布时间】:2011-08-05 16:46:12
【问题描述】:

我的 asp.net 页面上有一个小的联系页面。 我有大约 5 个可能会出错的验证器,并且我有一个 ValidationSummary。

问题在于,当我点击“提交按钮”时,所有控件的 div 都应该消失,而带有 ValidationSummary 的 div 应该出现。

但我不知道如何实现这一点,因为在普通按钮/链接按钮上,我不会看到 DIV 的回发可见/不可见。通过回发,我将没有 ValidationSummary 的信息。

希望我能正确解释,让你理解我:)

【问题讨论】:

  • ValidationSummary 显示发生的错误(如果您有用于验证的客户端脚本,则无需回发)。如果您显示 ValidationSummary,那么您有错误,那么如果您隐藏控件,它们将如何修复它们?
  • 我认为你应该使用自定义验证器,如果失败,隐藏 Divs
  • 你为什么要让人们往返于服务器而不是让他们在那里修复它?作为用户,这会让我感到沮丧。此外,某些浏览器不会保存表单控件(后退按钮)的状态,因此他们必须重新输入内容。

标签: asp.net validationsummary


【解决方案1】:

验证摘要显示/隐藏自己,这是您想要控制的吗?无论如何,您是对的,您必须在客户端 JavaScript 中执行此操作。

一种方法是手动调用验证方法Page_ClientValidate,不要依赖默认的验证功能。

另一种方法是通过以下方式替换默认客户端功能:

var fn = Page_ClientValidate;
Page_ClientValidate = function(..) {
   var result = fn(..);

   if (!!result)
      //Valid,
   else
      //Invalid, swap divs

   return result;
}

查看客户端上可用的验证方法,您可以使用此技术覆盖默认实现:http://msdn.microsoft.com/en-us/library/aa338815(v=vs.71).aspx

HTH。

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多