必需的字段validation不适用于JQuery Popup MVC 4

我有JQuery弹出窗口,我想在其上放置必要的字段validation,为此我已经在模型中设置了必需的属性,并且还在视图中为它们设置了validation消息,但是必需的字段validation不适用于弹出窗口。 必需的字段validation在JQuery Popups以外的表单上正常工作….请指导我应该怎么做才能解决这个问题…以下是我的代码。

模型

[Display(Name = "Material Code")] [Required(ErrorMessage = "*")] public string MaterialCode { get; set; } 

视图

 
  • @Html.LabelFor(m => m.MaterialCode) @Html.TextBoxFor(m => m.MaterialCode) @Html.HiddenFor(m => m.MaterialCodeId)
  • 以下是我的鳕鱼eto打开一个JQuery弹出窗口。

     $('#btnAddCharge').on('click', function (event) { event.preventDefault(); var actionURL = '@Url.Action("Edit", "Charges", new { Id = 0, @ticketId = @TicketId, UserId = UserId })'; $(dialogBox).dialog({ autoOpen: false, resizable: false, title: 'Edit', modal: true, show: "blind", width: 'auto', hide: "blind", open: function (event, ui) { $(this).load(actionURL, function (html) { $('form', html).submit(function () { $.ajax({ url: this.action, type: this.method, data: $(this).serialize(), success: function (res) { if (res.success) { $(dialogBox).dialog('close'); } } }); return false; }); }); } }); $(dialogBox).dialog('open'); }); 

    最初加载页面时会解析validation程序。 添加动态内容时,需要重新分析validation程序。 在加载内容后,修改脚本以包含以下行

     $(this).load(actionURL, function (html) { // Reparse the validator var form = $('form'); form.data('validator', null); $.validator.unobtrusive.parse(form); $('form', html).submit(function () { .... 

    旁注:您显示的代码不包含@Html.ValidationMessageFor(m => m.MaterialCode)但我认为这是包含的。