2013-05-05 59 views
0

我使用trigger()強制表單提交,並且我需要在表單提交完成後執行一個函數。我認爲唯一的方法是使用回調函數,但似乎trigger不允許回調函數。我怎樣才能達到相同的結果?我想要的東西將相當於以下內容:如何爲jQuery的trigger()函數創建回調函數?

$('#fileUploadButton').trigger('click',function(){ 
    // my callback function code goes here. 
}); 
+2

隨着事件是同步的,這一點兒也不是有意義的做到這一點。只需在第一行之後添加下一行,它將在單線程中執行。如果您提交表單,則頁面會重新加載,並且沒有回調。 – adeneo 2013-05-05 21:18:10

+0

的確如此,但表單正在被提交到一個''iframe''中,所以我需要知道它何時通過提交。 – 2013-05-05 21:22:32

+0

然後,您可能需要一個自定義事件,當表單提交後,它會向父窗口發送回調,並且突然變得非常複雜。 – adeneo 2013-05-05 21:26:01

回答

0

您可以將表單提交爲AJAX請求。如果請求成功,你可以做任何事情。另一種選擇是使用postMessage在兩個幀之間進行通信。

例如,對於一個AJAX請求:

$(":submit").click(function(event) { 
    event.preventDefault(); 
    $.ajax({ 
     type : "POST", 
     url : $(this).parents("form:first").attr("action"), 
     data : $(this).parents("form:first").serialize(), 
    }) 
    .done(function(data) { 
     // submit is done: do anything 
    }) 
});