RegularExpressionValidator允许我们在数据无效时显示错误消息。当数据有效时,它是否也可以显示不同的消息?
答案 0 :(得分:1)
编辑以下的解决方案无法正常工作。
当e.IsValid == true时,该消息不可见。我想也许你可以通过在ClientValidationFunction中将它设置为可见来解决这个问题,但这不起作用,因为asp.net包含的JavaScript验证代码执行ClientValidationFunction,然后调用一个名为ValidatorUpdateDisplay的方法来设置基于可见性的方法在IsValid上。
所以......不,我认为你不能使用Asp.Net验证器来显示有效和无效数据的消息,同时在提交表单时仍保留正确的验证功能。
您可以使用两个具有反向模式的正则表达式验证器,然后使用一些代码来告知提交的表单不会对良好输入的验证失败,但您最好只编写一个与验证无关的自定义解决方案。形式。
原始答案供参考
您可以尝试创建一个自定义验证器,根据输入更改验证器上的ErrorMessage属性。
类似的东西:
标记:
<asp:CustomValidator ID="MyCustomValidator" runat="server" OnServerValidate="OnCustomValidate" ControlToValidate="MyControlToValidate"></asp:CustomValidator>
代码隐藏:
protected void OnCustomValidate(object source, ServerValidateEventArgs e)
{
var validator = (source as CustomValidator);
var validRegex = new Regex("[a-z]");
if (validRegex.IsMatch(e.Value))
{
e.IsValid = true;
validator.ErrorMessage = "Good input";
return;
}
validator.ErrorMessage = "Your input is not valid";
e.IsValid = false;
}