Rails アプリに次のコードがあります。
jQuery ->
$(document).on "click", "#updateAllTestsButton", ->
$("form").each ->
$(this).trigger "submit.rails"
location.reload()
私がやりたいことは、すべてのフォームがリモート POST 要求を終了した後、現在のページをlocation.reload()
. 現在、リロードは反復が完了した後に行われますが、必ずしもフォームの送信が完了するとは限りません。
どうすればこれを行うことができますか?
私は醜い解決策を思いつきましたが、まだ何か良いものを探しています:
num_forms = 0
current_form_count = 0
jQuery ->
$(document).on "click", "#updateAllTestsButton", ->
forms = $("form")
num_forms = forms.length
forms.each ->
$(this).submit()
$(document).on "ajax:complete", "form", ->
current_form_count++
if current_form_count == num_forms
location.reload()
current_form_count = 0
num_forms = 0