我有一个使用for循环获取值的函数,并将它们放入1个变量中。这个变量被卡在一个表格中,然后提交它。但问题是for循环将在输入和提交值时完成循环。因此,每当我测试它时,变量“value”= 9999.任何人都可以告诉我如何在每次函数循环时向变量添加1?提前谢谢。
function myFunction() {
var value1;
var value2;
var value3;
var value4;
var value;
for (value1 = 0; value1 < 10; value1++) {
for (value2 = 0; value2 < 10; value2++) {
for (value3 = 0; value3 < 10; value3++) {
for (value4 = 0; value4 < 10; value4++) {
value = value1.toString() + value2.toString() + value3.toString() + value4.toString() + '@2018';
document.getElementById('pswd').value = value;
document.getElementById('uid').value = 'test';
document.getElementById('commentForm').submit();
}
}
}
}
}
var loop = setInterval(function() {
myFunction();
}, 2000);
答案 0 :(得分:1)
如果我正确地阅读了您的问题,您希望每次调用间隔回调时该数字会增加一个?您可以通过跟踪函数外部的value
来完成此操作,并在每次调用回调时执行一次增量。但是,您使用4个变量基本上从0到9999计数。您可以通过使用一个变量来递增来简化这一过程。然后你可以用零填充它。这看起来像这样。
var value = 0;
function myFunction() {
var pswd = value.toString().padStart(4, 0) + '@2018';
document.getElementById('pswd').value = pswd;
document.getElementById('uid').value = 'test';
document.getElementById('commentForm').submit();
value++;
if(value > 9999) {
value = 0;
}
}
var loop = setInterval(myFunction, 2000);
如果您无法使用padStart
,则可以使用slice
。您可以使用以下内容替换该行。
var pswd = ('0000' + value).slice(-4) + '@2018';