8

Ich habe JQuery Pop-ups, und ich will auf ihn erforderliches Feld Validierungen setzen und dafür habe ich erforderlichen Attribute in Modell festgelegt und hat auch die Validierung Nachricht für sie in der Ansicht festgelegt, aber Die erforderlichen Feldvalidierungen funktionieren nicht in Popups. Pflichtfeld Validierung funktioniert gut auf anderen Formen als JQuery Popups .... Bitte leite mich, was soll ich tun, um dieses Problem in Angriff zu nehmen ... Nach meinem Code.Pflichtfeld Validierungen funktioniert nicht in JQuery Popup MVC 4

Modell

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

Ansicht

<li> 
    @Html.LabelFor(m => m.MaterialCode) 
    @Html.TextBoxFor(m => m.MaterialCode) 
    @Html.HiddenFor(m => m.MaterialCodeId) 
</li> 

und folgende ist mein Kabeljau ein JQuery Popup ETO zu öffnen.

$('#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'); 
    }); 
+0

Laden Sie das Formular dynamisch in das Popup (z. B. mit Ajax?) –

+1

@StephenMuecke Ja, ich benutze Ajax – ARC

+0

Sie müssen den Validator analysieren. Sie müssen Ihr Skript, um zu zeigen, eine Antwort (bearbeiten Sie die Frage um es zu schließen) zu geben. –

Antwort

13

Der Validator wird analysiert, wenn die Seite zum ersten Mal geladen wird. Wenn Sie dynamischen Inhalt hinzufügen, müssen Sie den Validator analysieren. Ändern Sie bitte Ihre Skript die folgenden Zeilen enthalten, nachdem der Inhalt

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

Exkurs geladen wird: Der Code, den Sie gezeigt haben, nicht @Html.ValidationMessageFor(m => m.MaterialCode) nicht enthalten, aber ich nehme an, das enthalten ist.

+0

Danke sooo viel Stephen Muecke .... es mein Problem gelöst – ARC