jquery避免表单被提交两次

时间:2015-02-08 21:34:37

标签: javascript jquery ajax forms html-form

我在ASP.NET MVC应用程序中有这个表单:

@using (Ajax.BeginForm("SaveTransaction", "Addons", new AjaxOptions() { HttpMethod = "POST" }, new { id = "TransForm", enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    ...
}

我正在使用此jQuery代码提交表单,但它正在提交表单两次。

(function () {
    var bar = $('.progress-bar');
    var percent = $('.progress-bar');
    $('#TransForm').ajaxForm({
        beforeSend: function () {
            var percentVal = '0%';
            bar.width(percentVal)
            percent.html(percentVal);
            percent.fadeIn();
        },
        uploadProgress: function (event, position, total, percentComplete) {
            var percentVal = percentComplete + '%';
            bar.width(percentVal)
            percent.html(percentVal);
        },
        success: function (data) {
            var percentVal = '100%';
            bar.width(percentVal)
            percent.html(percentVal);
            percent.fadeOut();

            // Get addonID
            var ID = $('#BatchID').val();

            //Resets form
            ClearSelection();

            //update the partial views
            UpdateEvents(ID);

        },
        error: function (data) {
            ReturnStatus("alert-danger", 'data.responseText');
        },
        complete: function (data) {
            ReturnStatus("alert-success", message);
        }
    });

})();

此代码工作正常 - 它提交,保存并返回正确的数据 - 它只是执行两次。

我尝试添加beforeSend: function(e)...,然后e.preventDefault();,但它没有改变任何内容。如何将其更改为包含e.preventDefault();,以便表单不会发送两次?

0 个答案:

没有答案