C# 在MVC中将焦点移出文本框后,如何显示正则表达式验证消息?
下面是我的代码,我在控制器的视图中有电子邮件文本框和电话号码文本框。 问题是当用户开始键入时,它会显示正则表达式验证消息,我想在用户键入完整的电子邮件或电话号码后显示此消息 感谢您的帮助 谢谢 这是查看中的代码C# 在MVC中将焦点移出文本框后,如何显示正则表达式验证消息?,c#,asp.net-mvc,C#,Asp.net Mvc,下面是我的代码,我在控制器的视图中有电子邮件文本框和电话号码文本框。 问题是当用户开始键入时,它会显示正则表达式验证消息,我想在用户键入完整的电子邮件或电话号码后显示此消息 感谢您的帮助 谢谢 这是查看中的代码 <div class="editor-label"> @Html.LabelFor(model => model.Seller_Email) </div> <div class="editor-f
<div class="editor-label">
@Html.LabelFor(model => model.Seller_Email)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Seller_Email, new { placeholder = "Email" })
@Html.ValidationMessageFor(model => model.Seller_Email)
</div>
1)使用onblur()
函数并在jQuery中验证它
2) 删除模型验证。我建议使用DataAnnotationExtensions。它作为一个NuGet软件包提供,这将验证电子邮件地址以及您可能发现有用的其他验证程序。使用此表达式而不是在键入时不会验证的正则表达式-
这不会停止当前进行的验证。但仍然没有意义。问题是:使用MVC,它与jQuery验证紧密相连,如何防止在键入时启动验证?您的答案是:删除验证并添加jQuery验证。这样的答案并没有真正的帮助。默认情况下,只有当您在控制范围外进行制表操作时,才会显示错误消息(如果您在控制范围内进行制表操作,则会在每个笔划上显示错误消息),因此会发生其他情况。但是为什么不使用
[EmailAddress]
属性进行验证,因为验证使用的正则表达式要比您的好得多?我能想到的唯一一件事是,如果您在GET方法中添加ModelState
(例如,您的GET方法有一个作为模型的参数)。或者您有一个脚本覆盖了验证器的默认值。在这种情况下,当用户开始键入时,它会显示错误,而我也在其他字段上使用正则表达式验证,同样的情况也会发生。您的代码中没有其他错误(请参阅我最后的评论)
[Required(ErrorMessage = "Email is required")]
[Display(Name = "Email")]
[RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$",
ErrorMessage = "Email is not valid")]
[Remote("EmailExists", "Account", HttpMethod = "POST", ErrorMessage = "Email already exists. Please enter a different Email")]
public string Seller_Email { get; set; }