我有以下页面:
@model LogonModel
<div class="login-modal modal">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Welcome</h5>
</div>
<div class="modal-body">
@if (!ViewData.ModelState.IsValid)
{
<div class="alert alert-danger">
@foreach (var modelState in ViewData.ModelState)
{
<ul><li>@Html.ValidationMessage(modelState.Key, modelState.Value)</li></ul>
}
</div>
}
<div class="row">
<div class="col-md-12">
<p>Don't have an account? <a href="#">Contact us now.</a></p>
<form asp-action="Login" class="login-form">
<div asp-validation-summary="ModelOnly" class="validation-summary text-danger"></div>
<div class="form-group">
<label asp-for="EmailAddress" class="control-label">Email Address</label>
<input asp-for="EmailAddress" class="form-control" />
<span asp-validation-for="EmailAddress" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Password" class="control-label"></label>
<input type="password" asp-for="Password" class="form-control" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Sign in" class="btn btn-default login-submit" />
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" asp-for="RememberUser">
<label class="form-check-label" asp-for="RememberUser">Remember my account details</label>
</div>
<div class="form-group">
<a href="#">Login using a subscription ID</a><br />
<a href="#">Forgot your password?</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
最初,发给控制器的帖子只是在“提交”按钮上,验证者就可以了。即省略电子邮件,验证程序将显示错误消息。由于其他原因。当我按下提交按钮时,我先调用jQuery函数,然后再转到控制器,而在JavaScript中,我要做的第一件事是:
var loginForm = $(".login-form");
if (loginForm.valid()) {…..
这似乎不起作用,因为即使例如我不发送电子邮件,我的JavaScript也会被调用,并且仍然会通过“ if”语句中的代码。
我该怎么做才能使验证器重新工作?
答案 0 :(得分:0)
jQuery验证仅在输入被集中/修改或实际上提交(您的代码在此之前运行)后才触发。在任何一种情况下,valid
方法仅报告已触发验证的输入状态。换句话说,即使需要验证的输入为空,也有可能返回true
。
简短地说,首先需要调用validate
,以触发完整表单验证。
loginForm.validate();
if (loginForm.valid()) {
...
}