2016-06-09 30 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

在这种情况下,父代实际上是开放事件,未检测到窗口已关闭且表单已提交。 –

相关问题