form.submit多次触发,每次响应后多一次

时间:2011-03-04 23:35:01

标签: javascript .net jquery asp.net asp.net-mvc

我有一个多次触发的form.submit。第一次,没关系。收到回复后,如果再次单击“提交”按钮,则会触发两次。然后三次。似乎每次响应都返回时,提交会在下次单击按钮时触发额外的时间。

RetrievePassword = function () {
    var $popup = $("#fancybox-outer");
    var form = $popup.find("form");
    form.submit(function (e) {
        var data = form.serialize();
        var url = form.attr('action');
        $.ajax({
            type: "POST",
            url: url,
            data: data,
            dataType: "json",
            success: function (response) {
                if (response.Success) {
                    $.fancybox.close();
                }

                alert(response.Message);
            },
            error: function (xhr, status, error) {
                alert(xhr.statusText);
            }
        });

        e.cancelBubble = true;
        if (e.stopPropagation) e.stopPropagation();
        return false;
    });

};

我甚至不确定如何调试它。任何建议都表示赞赏......

1 个答案:

答案 0 :(得分:1)

我假设您多次致电RetrievePassword()。每次调用它时,都会注册另一个onsubmit处理程序。

解决方案是只注册处理程序一次。