gpt4 book ai didi

javascript - 一次循环 2 个元素

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

我正在尝试为表单上的标签创建错误消息。问题是它不起作用。提交的输入必须是数字。只要不是这样,单击按钮就会在特定标签上返回错误消息。

问题是 - 只有当您提交的第一件事是一组正确的数字时,它才可以正常工作。我似乎无法正确组合。你知道我该如何解决这个问题吗?

let coordValues = document.getElementsByClassName("input-card__input");
let submitBtn = document.getElementsByClassName("input-card__button");
let inputLabel = document.getElementsByClassName("input-card__label");

let weatherArray = [];
let labelArray = [];

for(let j=0;j<inputLabel.length;j++) {
labelArray.push(inputLabel[j].innerHTML);
}

submitBtn[0].addEventListener("click", function checkInputs() {
for(let i = 0; i<coordValues.length;i++) {
for(let k = 0; k<inputLabel.length;k++) {
if(coordValues[i].value === "" || isNaN(Number(coordValues[i].value))) {
inputLabel[k].classList.add("input-card__label--error");
inputLabel[k].innerHTML = "Oops! Write a number here."
console.log("nop");
break;
} else {
inputLabel[k].classList.remove("input-card__label--error");
inputLabel[k].innerHTML = labelArray[k];
console.log("yep");
break;
}
}
}
});
.input-card__label--error {
color: red;
}
<head>
</head>
<body>
<div class="input-card">
<h1 class="input-card__title">Where are you?</h1>
<h3 class="input-card__label">LONGITUDE</h3>
<input type="text" placeholder="Longitude" class="input-card__input">
<h3 class="input-card__label">ALTITUDE</h3>
<input type="text" placeholder="Altitude" class="input-card__input">
<button class="input-card__button">Show me weather ⛅</button>
</div>
</body>

最佳答案

您的代码中有一些错误,这是我修改的版本:

submitBtn[0].addEventListener("click", function checkInputs() {
for(let i = 0; i<coordValues.length;i++) {
if(coordValues[i].value === "" || isNaN(Number(coordValues[i].value))) {
inputLabel[i].classList.add("input-card__label--error");
inputLabel[i].innerHTML = "Oops! Write a number here."
console.log("nop");
return;
}
inputLabel[i].classList.remove("input-card__label--error");
inputLabel[i].innerHTML = labelArray[i];
}

console.log("yep");
});

一个问题是双重 for 循环,它使您想要做的事情变得过于复杂。然后,一旦删除,您的代码就会留下一个 for 循环,然后是一个测试,所有这些都以中断结束,因此您永远不会进行超过一次的迭代。

上面的代码基本上说的是记录 yes,除非你找到记录 nop 的理由。

关于javascript - 一次循环 2 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49712435/

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