【问题标题】:Form Stop Submitting After Adding jquery.validate添加 jquery.validate 后表单停止提交
【发布时间】:2014-03-01 15:29:22
【问题描述】:

这是我的控制器代码:

[HttpPost]

[ValidateAntiForgeryToken]

public async Task<ActionResult> Create([Bind(Include = "Id,Name,Description,FolioId,Permission,CreatedOn,  CreatedUser,Published")] Categories categories)
{
    if (ModelState.IsValid)
    {
        MembershipUser user = Membership.GetUser(User.Identity.Name);
        Guid guid = (Guid)user.ProviderUserKey;
        Methods method = new Methods();

        string NowTime = method.TodayDate(1) + " - " + DateTime.Now.ToString("HH:mm");

        categories.CreatedUser = guid;
        categories.CreatedOn = NowTime;

        db.Categories.Add(categories);
        await db.SaveChangesAsync();

        return RedirectToAction("Index");
    }
    return View(categories);
}

这是我的观点:

@model XS.Models.Articles.Categories.Categories
@{
    ViewBag.Title = "Create List";
    Layout = "~/Areas/_AdminLayout.cshtml";
}

<div style="margin-top:30px;padding-bottom:2px;">
     <img src="~/Content/images/category.png" style="position:absolute;" />
     <h3 style="padding-top:20px; margin-right:70px;">Lists</h3>
</div>

<hr />

@using (Html.BeginForm()) {
    @Html.AntiForgeryToken()

    <div>
        @Html.ValidationSummary(true)
        <div>
            @Html.LabelFor(model => model.FolioId)
            <div>
                @Html.DropDownListFor(x => x.FolioId, Model.FolioName, new { @class = "DropDown_Width150" })
                @Html.ValidationMessageFor(model => model.FolioName)
            </div>
        </div>

        <br />

        <div>
            @Html.LabelFor(model => model.Name)
            <div>
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)

            </div>
        </div>

        <br />

        <div>
            @Html.LabelFor(model => model.Description)
            <div>
                @Html.EditorFor(model => model.Description)
                @Html.ValidationMessageFor(model => model.Description)
            </div>
        </div>

        <br />

        <div>
            @Html.LabelFor(model => model.Permission)
            <div>
                @Html.EditorFor(model => model.Permission)
                @Html.ValidationMessageFor(model => model.Permission)
            </div>
        </div>

        <br />

        <div>        
            <label class="switch switch-fullgreen">
                @Html.EditorFor(model => model.Published)
                <span class="switch-label" data-on="Enable" data-off="Disable"></span>
                <span class="switch-handle"></span>

            </label>  

            @Html.ValidationMessageFor(model => model.Published)
        </div>

        <br />

        <div>
            <div>
                <input type="submit" id="submit" value="Create List" class="btn btn-success" />
                @Html.ActionLink("Return", "Index")

            </div>

        </div>
    </div>
}



<script>     
    $(document).ready(function () {
        $('#Published').addClass("switch-input")
    });
</script>

正常没有问题。但是当我将 jquery.validation js 文件添加到我的项目以进行不显眼的验证时,就会出现问题。 它发生在我添加之后:

jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js

到我的布局。

它的边界:

 bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(

                   "~/Scripts/jquery.unobtrusive*",

                   "~/Scripts/jquery.validate*"));

在 webconfig 中:

<add key="ClientValidationEnabled" value="true" />

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

【问题讨论】:

  • 确保您没有通过模型中的数据属性设置的验证消息。可能来自未发布,因为客户端验证要求用户更正错误。
  • 不确定捆绑包是​​如何工作的,但请确保在主 jquery 脚本文件之后加载验证脚本。
  • 您能否通过浏览器调试器检查是否有任何输入字段触发了验证(即使它们被隐藏)。这种行为可能是由 int 或 datetime 等不可为空的类型引起的

标签: jquery asp.net-mvc validation html-helper


【解决方案1】:

尝试更改文件的顺序并确保 jquery 也被引用。

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                   "~/Scripts/jquery.validate*",

                   "~/Scripts/jquery.unobtrusive*"

));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2013-08-13
    • 2010-09-13
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多