Convalide dei campi obbligatori non funzionanti in JQuery Popup MVC 4

Ho i popup di JQuery e voglio mettere le convalide dei campi richieste su di esso e per questo ho impostato gli attributi richiesti nel modello e ho anche impostato il messaggio di convalida per loro nella vista, ma le convalide dei campi richieste non funzionano sui popup. La convalida dei campi obbligatori funziona bene su moduli diversi da JQuery Popup …. Per favore, guidami che cosa dovrei fare per affrontare questo problema … Di seguito è riportato il mio codice.

Modello

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

vista

 
  • @Html.LabelFor(m => m.MaterialCode) @Html.TextBoxFor(m => m.MaterialCode) @Html.HiddenFor(m => m.MaterialCodeId)
  • e seguendo è il mio cod eto aprire un popup di 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'); }); 

    Il validatore viene analizzato quando la pagina viene inizialmente caricata. Quando aggiungi contenuti dinamici, devi eseguire nuovamente l’analisi del validatore. Modifica lo script per includere le seguenti righe dopo il caricamento del contenuto

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

    Nota a @Html.ValidationMessageFor(m => m.MaterialCode) : il codice che hai mostrato non include @Html.ValidationMessageFor(m => m.MaterialCode) ma presumo che sia incluso.