Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单击警报框上的“取消”后,ajax调用仍会发布到数据。为什么?_Javascript_Jquery_Html_Asp.net_Ajax - Fatal编程技术网

Javascript 在单击警报框上的“取消”后,ajax调用仍会发布到数据。为什么?

Javascript 在单击警报框上的“取消”后,ajax调用仍会发布到数据。为什么?,javascript,jquery,html,asp.net,ajax,Javascript,Jquery,Html,Asp.net,Ajax,我有几个ajax调用,在单击submit按钮时通过webmethods将数据发布到数据库 当用户单击submit按钮时,会弹出一个警报框,要求用户在提交到数据库之前验证其订单 当一切正常且用户单击submit按钮时,数据将成功发布到数据库 这部分工作正常 问题是,当用户单击“取消”时,数据仍然会发布到数据库中,尽管这一次会将空白记录发布到数据库中 我的问题是,为什么当用户单击“取消”时,数据仍然会被发布 单击Cancel选项不应触发ajax调用 我错过了什么 这里是相关代码。如有要求,将提供更多

我有几个ajax调用,在单击submit按钮时通过webmethods将数据发布到数据库

当用户单击submit按钮时,会弹出一个警报框,要求用户在提交到数据库之前验证其订单

当一切正常且用户单击submit按钮时,数据将成功发布到数据库

这部分工作正常

问题是,当用户单击“取消”时,数据仍然会发布到数据库中,尽管这一次会将空白记录发布到数据库中

我的问题是,为什么当用户单击“取消”时,数据仍然会被发布

单击Cancel选项不应触发ajax调用

我错过了什么

这里是相关代码。如有要求,将提供更多代码

function getAllCreditorData() {
        var data = [];
        $('tr.data-contact-person8').each(function () {
                var creditname = $(this).find('.creditorname01').val();
                var creditaddress = $(this).find('.creditoraddress01').val();
                var creditincome = $(this).find('.creditorincome01').val();
                var alldata = {
                        'myCreditorname': creditname,
                        'myCreditoraddress': creditaddress,
                        'myCreditorincome': creditincome
                }
                data.push(alldata);
        });
        console.log(data);
        return data;
}

$("#btnSubmit").click(function (event) {
        event.preventDefault();
        if (confirm('Please review your order before submitting. Click Ok to submit; Cancel to make additional changes')) {
                var empComplete = false, sourceComplete = false, spouseComplete = false, dividentComplete = false, reimbursedComplete = false, honorariaComplete = false, giftComplete = false, orgComplete = false, creditorComplete = false;
                function checkComplete() {
                        if (empComplete && sourceComplete && spouseComplete && dividentComplete && reimbursedComplete && honorariaComplete && giftComplete && orgComplete && creditorComplete) {
                                $("#result").text("Thank you! You have successfully completed this form");
                        }
                }
        }
        $("#result").text("");
        var data = JSON.stringify(getAllEmpData());
        console.log(data);
        $.ajax({
                url: 'disclosures.aspx/SaveEmpData',
                type: 'POST',
                contentType: 'application/json; charset=utf-8',
                data: JSON.stringify({ 'empdata': data }),
                async: false,
                success: function () {
                        empComplete = true;
                        checkComplete();
                },
                error: function () {
                        alert("Error while inserting data");
                }
        });

感谢您的帮助

您的ajax调用超出了您的if条件

$("#btnSubmit").click(function (event) {
    event.preventDefault();
    if (confirm('Please review your order before submitting. Click Ok to submit; Cancel to make additional changes')) {
        $.ajax({
            url: 'disclosures.aspx/SaveEmpData',
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify({ 'empdata': data }),
            async: false,
            success: function () {
                    empComplete = true;
                    checkComplete();
            },
            error: function () {
                    alert("Error while inserting data");
            }
    });

            var empComplete = false, sourceComplete = false, spouseComplete = false, dividentComplete = false, reimbursedComplete = false, honorariaComplete = false, giftComplete = false, orgComplete = false, creditorComplete = false;
            function checkComplete() {
                    if (empComplete && sourceComplete && spouseComplete && dividentComplete && reimbursedComplete && honorariaComplete && giftComplete && orgComplete && creditorComplete) {
                            $("#result").text("Thank you! You have successfully completed this form");
                    }
            }
    }
    $("#result").text("");
    var data = JSON.stringify(getAllEmpData());
    console.log(data);

您的ajax调用超出了if条件

$("#btnSubmit").click(function (event) {
    event.preventDefault();
    if (confirm('Please review your order before submitting. Click Ok to submit; Cancel to make additional changes')) {
        $.ajax({
            url: 'disclosures.aspx/SaveEmpData',
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify({ 'empdata': data }),
            async: false,
            success: function () {
                    empComplete = true;
                    checkComplete();
            },
            error: function () {
                    alert("Error while inserting data");
            }
    });

            var empComplete = false, sourceComplete = false, spouseComplete = false, dividentComplete = false, reimbursedComplete = false, honorariaComplete = false, giftComplete = false, orgComplete = false, creditorComplete = false;
            function checkComplete() {
                    if (empComplete && sourceComplete && spouseComplete && dividentComplete && reimbursedComplete && honorariaComplete && giftComplete && orgComplete && creditorComplete) {
                            $("#result").text("Thank you! You have successfully completed this form");
                    }
            }
    }
    $("#result").text("");
    var data = JSON.stringify(getAllEmpData());
    console.log(data);

您应该在if语句中包含$ajax代码,该语句要求用户确认是否要提交

您的if语句检查用户确认。但是ajax的代码并不在if语句的括号内调用我们。就在他们外面。因此,无论该语句是否为真,它都将运行


-RH

您应该在if语句中包含$ajax代码,该语句要求用户确认是否要提交

您的if语句检查用户确认。但是ajax的代码并不在if语句的括号内调用我们。就在他们外面。因此,无论该语句是否为真,它都将运行


-RH

快速浏览一下,您的帖子似乎在if块之外,带有confirm inThanks以感谢您的帮助。抓到戴夫了!快速浏览一下,您的帖子似乎超出了if模块,请确认,感谢您的帮助。抓到戴夫了!这样做很快,而且效果完美。非常感谢。我会在7分钟内接受SO的留言。@kenny很高兴我能帮上忙。这很快,效果完美。非常感谢。我将在7分钟内根据SO消息接受。@kenny很高兴我能帮上忙。