Asp.net mvc 4 EmailAddress Validation ModelValidation即使在用户完成输入数据之前也会自动启动

Asp.net mvc 4 EmailAddress Validation ModelValidation即使在用户完成输入数据之前也会自动启动,asp.net-mvc-4,razor,email-validation,model-validation,Asp.net Mvc 4,Razor,Email Validation,Model Validation,我正在使用数据注释来验证mvc4模型。 场 在我看来 <div class="form-group has-feedback"> <label class="sr-only" for="email2">Email address</label> @Html.TextBoxFor(model => model.UserEmail, new { @class =

我正在使用数据注释来验证mvc4模型。 场

在我看来

 <div class="form-group has-feedback">
                        <label class="sr-only" for="email2">Email address</label>
                        @Html.TextBoxFor(model => model.UserEmail, new { @class = "form-control", placeholder = "User Email", id = "useremail" })

                        @Html.ValidationMessageFor(model => model.UserEmail, string.Empty, new { @style = "color:red", @class = ".field-validation-error", id = "valUserEmail" })
                        <i class="fa fa-envelope form-control-feedback"></i>

                    </div>
这里的问题是,我开始在我的电子邮件地址字段中输入数据,当我开始输入数据时,甚至在我将数据输入字段之前,我都会收到验证消息。当我完成输入正确的数据时,这将消失,但如果用户在输入数据之前看到错误消息,则会感到恼火

任何建议都会有帮助


提前感谢。

默认情况下,客户端验证与keyUp事件一起工作。您可以使用jquery validate进行更改:

或甚至针对特定输入的键控事件:

$('form').validate({
   rules: {
     [...]
   }
} 
// Disable keyup validation for UserEmail field
$("[data-val-UserEmail]").keyup(function() { return false } );
var validator = $("form").data("validator");
if (validator) {
    validator.settings.onkeyup = false; // disable validation on keyup
}
$('form').validate({
   rules: {
     [...]
   }
} 
// Disable keyup validation for UserEmail field
$("[data-val-UserEmail]").keyup(function() { return false } );