javascript - 在循环中使用 window.location 插入数据时出现问题(GET 方法)

标签 javascript jquery html node.js sails.js

我正在使用 sailsjs 从 URL (mydomain.com/prod_master/addsupp) 的 GET 参数插入数据。

页面是/prod_master/addsupp,它接受 GET 参数以插入数据库。

javascript 我需要做循环并插入多条记录 以下是我正在使用的 javascript 代码:

<script>
for(var i=2;i<(rCount);i++)
{
supplier=tbl.rows[i].cells[3].children[0].value;
del_lead_time=tbl.rows[i].cells[4].children[0].value;
min_qty=tbl.rows[i].cells[5].children[0].value;
window.location="/prod_master/addsupp?supplier="+supplier+"&del_lead_time="+del_lead_time+"&min_qua="+min_qty;
}
</script>

但是我可以确认使用我的 url mydomain.com/prod_master/addsupp?supplier=val&del_lead_time=val2&min_qua=val3 可以完美地将记录添加到数据库 但是在循环中,如果我使用 window.location=url 则它不起作用。

有什么解决办法吗?

注意:如果有任何 jQuery 解决方案,请告诉我。

最佳答案

在循环中,您不能使用 window.location=url 调用任何 url 并执行某些任务。因为 javascript 的执行会比你想象的要快。一旦它替换了 window.location 中的 URL,在下一个循环中它将替换相同的,这将与之前的调用冲突。

更好的方法是使用 ajax 调用来调用该 URL。

我使用 jQuery to do GET request. 给你伪代码

<script>
for(var i=2;i<(rCount);i++)
{
    supplier=tbl.rows[i].cells[3].children[0].value;
    del_lead_time=tbl.rows[i].cells[4].children[0].value;
    min_qty=tbl.rows[i].cells[5].children[0].value;

    urlToCall="/prod_master/addsupp?supplier="+supplier+"&del_lead_time="+del_lead_time+"&min_qua="+min_qty;

    $.get(urlToCall, function(response){
      console.log(response); //you might want to see returned response
    });
}
</script>

关于javascript - 在循环中使用 window.location 插入数据时出现问题(GET 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23653381/

相关文章:

javascript - 使用 selenium webdriver 清除依赖文本框时未启用文本框

javascript - 切换 CSS 类对元素没有影响

javascript - 对于多个 if else 问题,是否有更简单的方法?

css - HTML5 视频 : Retain aspect ratio when resizing

javascript - 在 HTML Canvas 上绘制线性渐变路径

javascript - 通过循环的 JSON 响应

javascript - 使用 ajax 回调将数据源绑定(bind)到 Controller 时,数据未显示在 Kendo Grid 上

javascript - 捕获隐藏输入元素 jQuery 的值

jquery - 如何动画背景图像过渡?

html - 样式表阻止 table cellpadding 工作