2016-04-13 4 views
0

Ich habe eine Formular, die in einem Dialogfeld ist. Wenn ich anwenden, die Funktion:Jquery.valid() funktioniert nicht nach dem Aufruf einer jquery.dialog

var form = $('#xxx'); 
    form.valid() 

Es funktioniert wie erwartet, aber dieser Dialog hat eine Schaltfläche, die zur Zeit einen weiteren Dialog aufruft. Dieser zweite Dialog hat auch eine Form mit eigener Validierung. Wenn ich den zweiten Dialog schließe und den ersten schließe und den letzten wieder öffne, funktioniert die Validierung des ersten Dialogs, ich meine "jquery.valid()", nicht. Ich habe festgestellt, dass das "form.validate.currentelement" des ersten Dialogs vor dem Aufruf des zweiten Dialogs Daten enthält, aber nach dem Aufruf des zweiten Dialogs nicht.

Teil meines Codes

Landing Seite

//my first dialog 
<div id="dgAddEdit" style="display: none;"> 
    <div id="dgAddEditContent"></div> 
</div> 
<!-- my second dialog--> 
<div id="dgVendorSearch" title="Vendor Search" class="dialogs"></div> 
<div id="dgCollectible"> 

    @using (Html.BeginForm("", "", FormMethod.Post, new { id = "" })) 
    { 
     //some html tags for the landing 
    } 
</div> 

Aufruf der Dialoge

$('#dgAddEdit').dialog("option", "buttons", [ 
       { id: "SaveButton", text: "Save", click: function() { SaveFeature(); } }, 
       { id: "CancelButton", text: "Cancel", click: function() { $(this).dialog("close"); } }, 
       { 
        id: "VendorSearch", text: "Vendor Search", click: function() { 
         $("#dgVendorSearch").dialog('open'); 
        } 
       } 
      ]); 

Aufruf ersten Dialog

$('#dgAddEdit').dialog("open"); 

Antwort

0

mein Problem war, dass der zweite Dialog einen Verweis auf "jquery.valid" hatte, löschte alle Validierungsregeln des ersten Dialogs, nach dem Löschen dieser Referenz funktionieren alle Dialoge wie erwartet.