3

我有两个Custom Validators附加到一个文本框。文本框用于输入逗号分隔的电子邮件列表。第一个验证器检查没有重复的电子邮件地址。第二个自定义验证器检查所有电子邮件地址的格式是否有效。我有以下代码,它工作正常。

但是,当两个失败标准都满足时,它们都会触发,我*在文本框的右侧得到两个。一次只显示一个的最佳方法是什么*

在此处输入图像描述

代码

<asp:CustomValidator ID="valEmailRecipients" runat="server" ControlToValidate="txtEmailRecipients"
ClientValidationFunction="isUniqueElements" OnServerValidate="IsUniqueEmail_Validate"
Text="*" ErrorMessage="There should be no duplicate email address for a report"
ValidationGroup="Save">
</asp:CustomValidator>

<asp:CustomValidator ID="valEmailFormat" runat="server" ControlToValidate="txtEmailRecipients"
ClientValidationFunction="checkEmailFormat" OnServerValidate="IsValidEmailFormat_Validate"
Text="*" ErrorMessage="Entries should be valid email addresses separated by comma"
ValidationGroup="Save">
</asp:CustomValidator>

参考文献

  1. 使用 ASP.NET 服务器控件的自定义函数进行验证
  2. 在 javascript 中启用/禁用 asp 验证控件
  3. 如何为验证器设置 ValidatorEnable() javascript 属性?
  4. 使用 Javascript 启用验证器
4

2 回答 2

2

true最简单的方法:-如果电子邮件格式不正确,让 valEmailRecipients 返回。也就是说,只有当其他验证成功时,它才会发挥作用。

其他方式:- DisablingEnabling验证器,这可能很痛苦。

只是出于好奇,为什么有 2 个星号有问题?

于 2012-12-19T17:02:08.520 回答
1

创建一个自定义验证器,并在其上执行所有验证逻辑。

如果一项验证未通过,则为其设置相应的错误消息,将 args.IsValid 设置为 false 并结束该方法。

在提交按钮上,记得检查 Page.IsValid。

于 2012-12-19T17:40:25.823 回答