如何在焦点移出MVC的文本框后显示正则表达式验证消息?

时间:2016-03-15 09:46:25

标签: c# asp.net-mvc

以下是我的代码,我在控制器的视图中有电子邮件文本框和电话号码文本框。 问题是当用户开始输入时,它会显示正则表达式验证消息,我想要的是在用户输入完整的电子邮件或电话号码后显示此消息。

感谢任何帮助。

谢谢

这是视图上的代码

<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>

这是模型上的代码

[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; }

this is the error image

2 个答案:

答案 0 :(得分:0)

我建议使用DataAnnotationExtensions。它可以作为NuGet包使用,这将验证您可能觉得有用的其他验证器中的电子邮件地址。使用此代替正在输入时不会验证的正则表达式 -

http://dataannotationsextensions.org/

答案 1 :(得分:-2)

1)使用onblur()函数并在jQuery中验证它。

2)删除模型验证。