asp.net-mvc - 使用 Ajax/jQuery 提交 ASP.NET MVC 3 表单时的客户端验证

标签 asp.net-mvc asp.net-mvc-3 jquery

在使用 ASP.NET MVC 3 时,使用 Ajax 和 jQuery 处理表单提交时,我在客户端验证方面遇到问题。

检查模型在服务器端是否有效,但是以下代码片段不会触发客户端验证。

我错过了什么吗?

@model ViewModels.LeadDetailModelCore
@{using (Html.BeginForm("UpdateCore", "Leads", new { area = "Telesales" }, FormMethod.Post, new { id = "coreSave" }))
  {

    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
    @Html.HiddenFor(model => model.Lead_ID)

                    @Html.LabelFor(model => model.LeadStatus_ID)
                    @Html.DropDownListFor(model => model.LeadStatus_ID, new SelectList(Model.LeadStatuses, "LeadStatus_ID", "LeadStatus_Name"), "-- Please select a status --")
                    @Html.ValidationMessageFor(model => model.LeadSource_ID)

     }}
    <script type="text/javascript">
    // NOTE ADD

    $(function () {

        $('#coreSave').die().live("submit", function (e) {
            e.preventDefault();
            var form = $(this);

            var val = form.validate()
            if (val.valid()) {
                $("#ProgressDialog").dialog("open");

                // post via ajax
            }


            return false;
        });
    });

</script>

最佳答案

确保您已包含正确的脚本:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

而你manually parse validation对于所有动态 DOM 元素。因此,每次更新 DOM 时,如果您最初加载页面时此表单不是 DOM 的一部分,则应该注册客户端验证:

$.validator.unobtrusive.parse($('#coreSave'));

您可能还会找到following answer对于使用带有部分 View 的 jQuery 对话框非常有用。

关于asp.net-mvc - 使用 Ajax/jQuery 提交 ASP.NET MVC 3 表单时的客户端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785158/

相关文章:

c# - 是否可以在不创建 ViewModel 对象的情况下从 .NET 中的 REST api 获取复杂的 Entity Framework 对象?

entity-framework-4 - IDbSet和通过扩展方法公开Include方法

asp.net - Enterprise ASP.NET MVC 3 架构大纲

javascript - 我如何通过 jQuery 访问 td 类?

asp.net-mvc - 如何使用 Jquery 更新强类型 Html.DropDownList

c# - 将 Webforms 升级到 MVC : Razor Namespace in view web. 配置不起作用

c# - 如何为路由实现另一个 var 参数名称

asp.net-mvc - 如何在cshtml模板中创建函数?

javascript - jQuery 后数组

javascript - 单击按钮时删除类的所有实例