表单提交之前的jQuery off()

时间:2017-04-17 14:05:04

标签: javascript jquery ajax forms

我正在学习如何使用jQuery,并且我想了解在提交表单之前使用off()方法的目的是什么。例如,在下面的代码中,首先使用preventDefault()阻止表单发送,完成某些Ajax,完成后,最终提交表单。但为什么我需要在submit()之前使用off()?

$(document).ready(function() {
    $('form[name="Payment"]').on('submit', function( e ) {
        e.preventDefault();

        AjaxCall();

        $(document).ajaxStop(function() {
            $('form[name="Payment"]').off('submit').submit(); // Once Ajax request are finished, submit the form.
        });
    });
});

1 个答案:

答案 0 :(得分:1)

因为触发相同的事件会再次运行所有相同的事件处理程序代码。

将始终阻止默认值,将调用ajax ....然后将再次触发事件,并且您将无限循环而无需更改内容。

删除事件侦听器会使任何后续提交都使用浏览器默认进程

还有其他方法可以解决这个问题......但这个答案解释了所提出的问题