2013-05-05 4 views
0

Я использую trigger(), чтобы принудительно отправить форму, и мне нужно выполнить функцию после завершения отправки формы. Я предполагаю, что единственный способ сделать это - с функцией обратного вызова, но кажется, что trigger не позволяет выполнять функции обратного вызова. Как я могу достичь того же результата? Я хочу что-то, что было бы эквивалентно следующему:Как создать функцию обратного вызова для функции триггера jQuery?

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

Как события синхронны, то does'nt имеет смысл сделать это. Просто добавьте следующую строку после первого, и она будет выполнена в одном потоке. Если вы отправляете форму, страница перезагружается, и для этого нет обратного вызова. – adeneo

+0

Правда, но форма отправляется в '' iframe'', поэтому мне нужно знать, когда она отправляется. –

+0

Тогда вам, вероятно, понадобится настраиваемое событие, которое отправляет обратный вызов в родительское окно при отправке формы, и внезапно стало очень сложно. – adeneo

ответ

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 
    }) 
}); 
Смежные вопросы