gpt4 book ai didi

Javascript 行为异常

转载 作者:行者123 更新时间:2023-11-30 07:00:00 26 4
gpt4 key购买 nike

下面的函数没有像我想的那样工作。出于某种原因,只要验证函数返回 false,循环就会中断。这是为什么?

这是我的代码:

function validateGroup(input) {
if (!input.value.match(/^[0-9]{0,2}$/)) {
$(input).addClass("invalidField");
return false;
}
$(input).removeClass("invalidField");
return true;
}

function validateClass(input) {
if (!input.value.match(/^[a-zA-Z0-9-]{0,9}$/)) {
$(input).addClass("invalidField");
return false;
}
$(input).removeClass("invalidField");
return true;
}

function validateData() {
var rows = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");

var valid = true;

for (var i = 0, arrayLength = rows.length; i < arrayLength; ++i) {
valid = valid && validateClass(rows[i].getElementsByTagName("input")[0]);
valid = valid && validateGroup(rows[i].getElementsByTagName("input")[1]);
valid = valid && validateGroup(rows[i].getElementsByTagName("input")[2]);
}
return valid;
}

非常感谢!

最佳答案

如果 valid 为 false,语句 valid && validateClass(...) 将不会调用 validateClass 方法。我认为您想要做的是将它们的顺序更改为

valid = validateClass(rows[i].getElementsByTagName("input")[0]) && valid;
valid = validateGroup(rows[i].getElementsByTagName("input")[1]) && valid;
valid = validateGroup(rows[i].getElementsByTagName("input")[2]) && valid;

如果 Javascript 已经知道结果为假,它就不会去计算 && 表达式的其余部分。

关于Javascript 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915291/

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