【问题标题】:Unobtrusive validation fails when a Checkbox is on the form当复选框在表单上时,不显眼的验证失败
【发布时间】:2013-08-22 21:19:36
【问题描述】:

我有一个简单的登录页面,突然(在将 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>

【问题讨论】:

  • 请发布您的代码
  • 添加了代码。感谢观看
  • 您是否更新了 bundleConfig 以显示 jQuery 的升级版本?如果是这样,我建议可能自升级以来javascript中可能存在错误,一旦失败,它就会离开验证
  • 是的,我更新了 jQuery 版本并且 bundleconfig 没有改变。现在正在使用新版本。如果我删除 CheckBoxFor,我没有收到任何 javascript 错误,并且此代码有效。如果我恢复到旧的 jquery 版本,它可以正常工作。
  • 所以基本上问题仍然存在。谢谢

标签: c# asp.net-mvc-4 entity-framework-4 unobtrusive-validation razor-2


【解决方案1】:

为了解决这个问题,在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>

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2019-10-09
    • 1970-01-01
    相关资源
    最近更新 更多