隐藏ASP.Net ValidationSummary中的冗余错误消息

我有一个asp.net页面接受两个输入值 – 名称和地址。 它们都是必填字段。 我使用了必填字段validation器和validation摘要。

如果错误消息是多余的,如果用户未同时输入两个值,则会触发错误消息两次。 即使存在两个错误,我也只需要显示一条错误消息。

  1. 我们如何使用jQuery处理它?
  2. 我们如何使用ASP.Net标记来处理它?

注意 :我最初认为validation控件将在页面加载时发出HTML,这样我就可以使用“查看源代码”并对HTML元素执行jQuery。 但事实并非如此。 它只呈现如下

结果

在此处输入图像描述

ASP.Net标记

  
Name
Address

这有点hackish,但它会工作:

添加以下Javascript函数:

 function submitValidate() { var isValid = Page_ClientValidate(''); if (!isValid) { setTimeout("$('#vsumAll ul li:not(:first)').remove()", 5); } return isValid; } 

在提交按钮中添加以下内容:

  

最后,请确保您的ValidationSummary上有ClientIDMode="Static"

说明
它使用JQuery删除ValidationSummary中除第一个li所有li – 它实际上是一个UnorderedList(例如ul )。
我把它放在一个5ms的setTimeout因为我们希望它只在ValidationSummary完成将所有项添加到ul
只有在Page_ClientValidate失败时才会运行代码 – 这是执行ClientSidevalidation的函数。