批量表单提交后在jQuery中执行操作

时间:2013-09-11 20:36:08

标签: jquery

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

0 个答案:

没有答案