2013-06-03 24 views
1

當我提交遠程表單時,我的控制器返回HTML中無佈局的索引視圖。我想在客戶端上有一個回調,當我的HTML中加載該索引視圖時可以觸發該回調。我嘗試過這樣的東西:Rails提交遠程表單並處理無格式響應

$("form").bind('ajax:complete', function(xhr, status) { theCallback() }); 

但是這不起作用。綁定ajax:success也沒有。在jquery_ujs.js調試導致我相信問題是由回調事件綁定到的形式不存在於HTML響應中的事實引起的。所以觸發的元素消失了。

這對我來說似乎不是這樣一個異國情調,所以我猜測必須有一個非常簡單的解決方案。特別是,我希望這可以通過HTML響應類型完成。我敢肯定,它可以與JS響應類型做...

+0

參見[這個答案](http://stackoverflow.com/q/3501317/1065703)。綁定到'ajax:success'應該可以工作。你可以檢查AJAX調用的響應(即使用螢火蟲) –

+0

響應是簡單的部分HMTL。在'jquery_ujs.js'中,我看到在HMTL返回後執行'complete'回調函數,它執行這個語句:'element.trigger('ajax:complete',[xhr,status]);'。然而,'element'指的是新的HTML中不再存在的$(「form」)',因此我的回調從不執行。 爲了繼續前進,我決定使用JS響應類型,並在迴應中明確執行回調函數。但我仍然非常渴望爲HTML響應找到解決方案。 –

回答

2

試試這個:

$('form').bind('ajax:success', function(event, data, status, xhr)