gpt4 book ai didi

javascript - for-in-Loop 之后执行代码的问题

转载 作者:行者123 更新时间:2023-12-02 15:43:06 25 4
gpt4 key购买 nike

我有一个包含多个添加的动态行的表单,我想在提交表单之前对输入进行一些验证,例如检查所有字段是否都有输入等。所以当我的提交按钮上有 onclick-Event 时,我调用这个小函数:

function validateAndSubmit() {
var form = document.getElementById("mainForm");
var formGroups = document.getElementsByClassName("form-group");
for (var x in formGroups) {
// Validation goes here
....
if (valid == false) {
return;
}
}
form.submit();

因此,按照我的逻辑,代码应该迭代每个表单组(基本上代表表单中的各个行)并检查它们是否有效。在第一个无效行之后,该函数将返回但没有任何结果。但如果检查了所有 formGroup,for-Loop 将退出,并且 form.submit(); 调用将提交表单。

但是,最终提交并未发生。即使所有表单元素都有有效的输入,表单也不会提交。然而,在一些调试过程中,我注释掉了整个 for 循环,并且表单提交了,但当然没有进行验证。所以我假设 for 循环无法正常退出,并且可能需要一些帮助来解决该问题。

整个项目是用纯 JavaScript 编写的,但是,我使用的库基于 jQuery 动态添加和删除表单中的项目。

引用可以网上找到该项目here

最佳答案

你一开始就不应该使用for-in。只需使用普通形式即可:

for(var i=0;i<formGroups.length;i++)

记住,for-in 用于对象/字典。例如。 {'键':'值'}

你在循环中得到的第一个“x”是“length” - 你的 formGroups[x] 变成了 formGroups[undefined] 并立即抛出异常。

关于javascript - for-in-Loop 之后执行代码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32433601/

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