我在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