Nic*_*ick 1 asp.net-mvc jquery asp.net-mvc-3
在使用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>
Run Code Online (Sandbox Code Playgroud)
确保您已包含正确的脚本:
<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>
Run Code Online (Sandbox Code Playgroud)
并且您手动解析所有动态DOM元素的验证.因此,每次更新DOM时,如果在最初加载页面时此表单不是DOM的一部分,则应注册客户端验证:
$.validator.unobtrusive.parse($('#coreSave'));
Run Code Online (Sandbox Code Playgroud)
您可能还会发现以下答案对于使用具有部分视图的jQuery对话框非常有用.
| 归档时间: |
|
| 查看次数: |
5158 次 |
| 最近记录: |