我遇到了循环问题。它不会将'i'值从0增加。你能帮助我吗?
这是我的代码:
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...
答案 0 :(得分: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
}
});
}
答案 1 :(得分:3)
for循环中的return语句导致它在进入下一次迭代之前退出。
答案 2 :(得分:2)
因为你在循环的第一次迭代时返回,所以选择。