我有asp net mvc项目。而且我的表单中只有很少的输入。对于客户端验证,我使用两个库:
jquery.validate.js 和 jquery.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>
如果我按下“提交”按钮并显示空字段,则会显示错误“需要电子邮件字段”
确定。如果在消息显示之后我通过jQuery将值放在字段中,如下所示:
$("#Email").val("some@email.com");
错误消息仍然显示不同,如果我键入文本错误消失。我试图手动触发验证,但错误仍显示:
$("#Email").val("some@email.com");
$("#cartForm").validate();
奇怪的是,通过jQuery更新值之后,甚至可以提交错误显示。
答案 0 :(得分:2)
使用$('form').validate().form();
手动触发验证以重新运行。
将此 AFTER 设置为有效值,如下所示:
$("#validInput").click(function () {
$("#UserName").val("user@company.com");
$('form').validate().form();
});