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