2016-06-09 61 views
3

我有一個JQuery UI模式,如果存在某些限定符,則呈現部分MVC視圖。在我的JavaScript中,我只希望表單在模式完成後提交。這是我有:在沒有AJAX的jQuery提交調用之前執行JavaScript的方法?

$('#btnSaveAndSend').click(function (e) { 
     var result = _fieldsAreValid($('#validation').val() === "y"); 

     if (result) { 

      if (showPrompt) { 
       $('#divPrompt').dialog({ 
        autoOpen: true, 
        width: 500, 
        height: 225, 
        modal: true, 
        draggable: false, 
        resizable: false, 
        title: "Modal", 
        open: function (event, ui) { 
         $(this).load("/Home/SendEmail"); 
        } 
       }); 
      } 
      $("#form").submit();    
     } 
    }); 

沒有AJAX,有沒有辦法做到這一點?

回答

3

使用promise爲父母的檢查其完成應該做的伎倆。嘗試用這個替換你的open

open: function (event, ui) { 
    $(this).parent().promise().done(function() { 
     $("#form").submit(); 
    }); 
} 
+0

我會假設會發生.load行之後? –

+0

並不重要,你只是將一個監聽器添加到'done'事件中 – Pabs123

+0

在這種情況下,父代實際上是開放事件,未檢測到窗口已關閉且表單已提交。 –

相關問題