Ajax调用多次

时间:2017-12-14 16:21:06

标签: javascript jquery html ajax

我在 Javascript 中编写了一个代码,其中我已将输入类型提交附加到 OR [QUOTE_DATESTART] Between [Forms]![frm_QuotesReports]![txtFromDate] And [Forms]![frm_QuotesReports]![txtToDate] <br/> AND [QUOTE_DATESTART] BETWEEN (SELECT [tbl_fiscalyear].[fromdate] FROM tbl_fiscalyear WHERE fiscalyr_ID = [Forms]![frm_QuotesReports]![cboFY]) AND (SELECT [tbl_fiscalyear].[todate] FROM tbl_fiscalyear WHERE fiscalyr_ID = [Forms]! [frm_QuotesReports]![cboFY]) 。在表单提交上,监听器被调用。

问题在于,当我单击按钮一次时,会发生一次ajax调用。当我再次单击它时,会发生两次调用,而每次单击时只会发生一次调用。类似地,在点击3次时发生3次呼叫,依此类推......(呼叫越来越多)。如果我刷新页面,则数字会重置。我已经尝试了一切,但我没有运气。如果有人发现这里有什么问题,那就太棒了。提前谢谢。

javascript代码:

autoencoder.summary()

1 个答案:

答案 0 :(得分:3)

之所以发生这种情况,是因为每次点击代码都会重新附加submit事件,因此每次点击都会重复该事件。

您不应该将事件附加到其他事件中,请将submit事件放在click事件之外,代码应该可以运行,例如:

var form1 = $('form#quotation_discount_update_form');
form1.on("submit", function (e) {
    var form_data1 = form1.serialize();

    $.ajax({
        type: 'POST',
        url: form1.attr('action'),
        data: form_data1,
        dataType: "json",
        success: function (data) {
            $('.quotation-discount-status-update').empty();
            $('.quotation-discount-status-update').append('<div class="alert alert-success">Discount Added</div>');
        }
    });

    e.preventDefault();
});

否则,每次使用.off()时都必须删除事件处理程序,如:

form1.off("submit").on("submit", function (e) {