当表单上有复选框时,非侵入式验证失败

本文关键字:验证 失败 表单 复选框 | 更新日期: 2023-09-27 18:28:38

我有一个简单的登录页面,它突然(在将Jquery.js和Jquery-ui.js分别升级到1.10.2和1.10.3之后)开始实际达到操作结果,而不是显示E.F数据注释上定义的客户端验证消息。

因此,我发现,除了用户和密码之外,删除我仅有的CheckBoxFor,提交按钮实际上可以正常工作,这样它只会在不到达控制器的情况下引发客户端验证。

这种行为有什么原因吗?

谢谢!!

以下代码:

@using System.Web.Optimization;
@model MyProject.Models.LogOnModel
@{
    ViewBag.Title = "Entrar";
}
<h1>@ViewBag.Title</h1>
<p>
    Se pretende obter acesso clique @Html.ActionLink("aqui", "Register").
</p>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true, "O seu acesso falhou. Por favor corriga os erros e tente novamente.")
    <div>
        <fieldset>
            <legend>Informação da sua conta</legend>
            <div class="editor-field">
                @Html.LabelFor(m => m.Email)
                @Html.TextBoxFor(m => m.Email, new { @class = "medium-editor" })
                @Html.ValidationMessageFor(m => m.Email)
            </div>
            <div class="editor-field">
                @Html.LabelFor(m => m.Password)            
                @Html.PasswordFor(m => m.Password, new { @class = "medium-editor" })
                @Html.ValidationMessageFor(m => m.Password)
            </div>
            <input type="submit" value="Entrar" />
            @Html.CheckBoxFor(m => m.RememberMe)
            @Html.LabelFor(m => m.RememberMe)
        </fieldset>
    </div>
}
<p>
    Esqueceu a sua password? 
    Clique @Html.ActionLink("aqui", "ForgotPassword", "Account") para recuperar a sua password. 
</p>

当表单上有复选框时,非侵入式验证失败

要解决此问题,请在jquery 之后包含jquery migrate 1.2.x

<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>