jQuery等待.each完成并运行ajax调用

时间:2017-12-27 20:32:52

标签: javascript jquery ajax

我有以下代码:

var allChecks = [];
$('input[type=text]').each(function () {
    var key = $(this).attr("id");
    allChecks[key] = [];
}).promise()
        .done(function () {
            $('input[type=checkbox]').each(function () {
                if (this.checked) {
                    var ref = $(this).attr('id');
                    $('.' + ref).each(function () {
                        allChecks[ref].push({
                            amount: $("#" + ref).text()
                        });
                    });
                } else {
                    allChecks[ref].push({
                        amount: 0.00
                    });
                }
            }).promise()
                    .done(function () {
                        $.ajax({
                            cache: false,
                            type: 'POST',
                            data: {
                                allChecks: allChecks
                            },
                            url: '/process',
                            beforeSend: function () {
                                console.log("Processing your checks please wait...");
                            },
                            success: function (response) {
                                console.log(response);
                            },
                            error: function () {
                                console.log("Error");
                            }
                        });
                    });
        });

我的Ajax调用运行但是我没有看到作为参数传递的数据,比如数组allChecks是否为空。当JavaScript同步运行时,我希望无论我在每个()之后放置什么都不会运行,直到每个()完成,所以Ajax调用应该运行良好,也不会给我传递数据,好像数组allChecks是空的。任何帮助或解决方案将不胜感激。感谢。

0 个答案:

没有答案