0

我有一个循环问题。它不会从 0 增加“i”值。你能帮我吗?

这是我的代码:

var users = ["a", "b", "c"];

if (users.length > 0) {
    $(".ajax").live("submit", function(){
        for (var i=0; i < users.length; i++) {
            console.log(i);

            var forma = $(this);

            $("input[name=_session]", forma).val(users[i]);

            ajaxy(forma, function(data){
                console.log(data.status);
            });

            return false;
        }
    });
} else...
4

3 回答 3

10

在循环的第一次迭代后返回 false。我认为您需要将return false;线路移出循环块。

正确缩进你的代码会使这样的错误很明显:

if (users.length > 0) {
    $(".ajax").live("submit", function () {
        for (var i = 0; i < users.length; i++) {
            console.log(i);
            var forma = $(this);
            $("input[name=_session]", forma).val(users[i]);
            ajaxy(forma, function (data) {
                console.log(data.status);
            });
            return false; // This should not be here
        }
    });
}
于 2012-08-02T17:57:32.150 回答
3

for 循环中的 return 语句导致它在进入下一次迭代之前退出。

于 2012-08-02T17:58:33.147 回答
2

因为你返回循环的第一次迭代,我想。

于 2012-08-02T17:59:02.773 回答