HTML、JS、alert问题?
以下代码为什么在for循环里面加上alert("随便什么都行");之后就会全部执行,而不加alert(),则只会执行一部分(随机的,3条、4条都有,好像是i大于5就执行不...
以下代码为什么在for循环里面加上alert("随便什么都行");之后就会全部执行,而不加alert(),则只会执行一部分(随机的,3条、4条都有,好像是i大于5就执行不了)。
function add_person(){
var checked_person;
var EXPLAIN1;
for(var i=1;i<11;i++){
checked_person = document.getElementById("persons"+i).value;
EXPLAIN1 = document.getElementById("e"+i).value;
var url = "../controller/add_check_person.php?";
url += "TENDER_ORDER="+i;
url += "&&SUPPLY_MAN="+checked_person;
url += "&&EXPLAIN1="+EXPLAIN1;
window.location.href=url;
}
} 展开
function add_person(){
var checked_person;
var EXPLAIN1;
for(var i=1;i<11;i++){
checked_person = document.getElementById("persons"+i).value;
EXPLAIN1 = document.getElementById("e"+i).value;
var url = "../controller/add_check_person.php?";
url += "TENDER_ORDER="+i;
url += "&&SUPPLY_MAN="+checked_person;
url += "&&EXPLAIN1="+EXPLAIN1;
window.location.href=url;
}
} 展开
2个回答
展开全部
因为你window.location.href=url;你跳转地址了,你跳转到其他页面,你这串js就没了,就不会执行,因为页面跳转需要时间,在没有加载完新页面这段时间里,你的js还是有效的,会被执行,加载完新的页面,js就没了,当然就不会被执行,也就是你说的for循环4次就不执行,那就说明新页面加载花了的时间就是js执行4次for花了时间,至于你说alert为什么会执行完是因为,alert是阻塞时的方法,就是说只要你不点确认程序就停在那里了,那么意思就是,你想要跳转你先点确定吧,你不点确认,就不要跳转,你点完确定,下一次循环的alert又来了,你还是得先点确定,这样你的跳转就会在点完所有的alert之后执行,所以你的for会执行完
更多追问追答
追问
e嗯嗯 ! 对的额,那这个应该怎么解决了比较好了。
追答
如果你不是非要在一个页面上跳转的话,可以试试window.open
就是 window.location.href=url;改成window.open(url);
展开全部
有几个问题需要注意下:
1、在for循环里根据i获取元素对象,那么也应该在for循环里定义,即:
var checked_person = document.getElementById("persons"+i).value;
var EXPLAIN1 = document.getElementById("e"+i).value;
2、for循环最后由location.href语句,那么当循环第一次执行的时候,直接就掉转了,正常情况下应该不会执行了,跟alert没什么关系
3、你可以讲url存入一个数组,调转的时候将数组传过去
var url = [];
for(....){
url.push();
}
window.location.href="../controller/add_check_person.php?"+url;
1、在for循环里根据i获取元素对象,那么也应该在for循环里定义,即:
var checked_person = document.getElementById("persons"+i).value;
var EXPLAIN1 = document.getElementById("e"+i).value;
2、for循环最后由location.href语句,那么当循环第一次执行的时候,直接就掉转了,正常情况下应该不会执行了,跟alert没什么关系
3、你可以讲url存入一个数组,调转的时候将数组传过去
var url = [];
for(....){
url.push();
}
window.location.href="../controller/add_check_person.php?"+url;
追问
嗯嗯!貌似我可以先把他们装在一个数组里面,然后再跳转,到PHP页面在遍历处理额。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询