gpt4 book ai didi

Javascript 每次循环问题

转载 作者:行者123 更新时间:2023-11-28 21:19:01 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我想获得一些专业的反馈。

我正在创建一个 CRM 应用程序,其中有一个带有预览按钮的表单。当按下预览按钮时,我的函数首先通过 Ajax 将表单的所有字段保存到数据库,然后提交表单进行预览。

表单字段存储在数组中(因为这些字段发生变化)。我使用 jQuery.each(myArray, function(index, value) 循环数组。

问题是表单在循环执行之前提交。如果我在循环中放置警报,或者在 document.submit() 中添加设置超时,一切都会很好。

我想知道,为什么循环在进入代码中的下一行之前没有完成。

这是我的代码。

var myArray = ['sub','msg','pic','field4','field5','field6','field7'];
jQuery(document).ready(function($){
$.each(myArray, function(index, value) {
SaveFields(value); // my function that saves to db via Ajax call
});
});

//document.formName.submit(); // this submits the form before .each loop can execute
eval("setTimeout('document."+formName+".submit()', 700)"); // THIS WORKS AS INTENDED

我还尝试计算数组项的数量并在循环内添加了submit(),如下所示...

var ArrCount = myArray.length - 1;

jQuery(document).ready(function($){
$.each(myArray, function(index, value) {
var saveIt = SaveFields(value);

if (ArrCount == index){
document.formName.submit(); // this also submits the form before .each loop can execute
}

});
});

结果相同!它只能与alert或setTimout一起使用!

感谢任何帮助,因为我真的想知道为什么循环在移动到下一行之前没有完成。

最佳答案

一旦 DOM 加载并准备就绪,jQuery.ready 函数就会执行循环。由于您的 document.formName.submit() 位于就绪调用之外,因此它会立即执行。尝试将其移动到就绪调用中,如下所示:

var myArray = ['sub','msg','pic','field4','field5','field6','field7'];
jQuery(document).ready(function($){
$.each(myArray, function(index, value) {
SaveFields(value);
});
document.formName.submit();
});

关于Javascript 每次循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com