通过 jQuery 设置值后验证字段

dan*_*y89 7 html javascript asp.net validation jquery

我有 asp net MVC 项目。我的表单中几乎没有输入内容。对于客户端验证,我使用两个库:

jquery.validate.jsjquery.validate.unbrostive.js

例如我有现场电子邮件:

<div class="form-group">
    @Html.LabelFor(m => m.Email, new { @class = "required" })
    @Html.TextBoxFor(m => m.Email, new { @class = "form-control", @autocomplete = "nope" })
    @Html.ValidationMessageFor(x => x.Email)
</div>
Run Code Online (Sandbox Code Playgroud)

如果我按字段为空的“提交”按钮,它会显示错误“需要电子邮件字段”

好的。如果在显示消息后我通过 jQuery 将值放入字段中,如下所示:

$("#Email").val("some@email.com");
Run Code Online (Sandbox Code Playgroud)

错误消息仍然显示,与我输入文本不同,错误消失。我尝试手动触发验证,但错误仍然显示:

$("#Email").val("some@email.com"); 
$("#cartForm").validate();
Run Code Online (Sandbox Code Playgroud)

奇怪的是,通过 jQuery 更新值后,即使显示错误也可以提交。

在此输入图像描述

Den*_*els 5

用于$('form').validate().form();手动触发验证重新运行。将输入字段设置为有效值调用此函数,如下所示:

$("#validInput").click(function () {

    $("#UserName").val("user@company.com");

    $('form').validate().form();

});
Run Code Online (Sandbox Code Playgroud)