0

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

0 回答 0