我正在尝试使用 HTML 和 JavaScript 创建一个预订系统。这是我的代码的简化版本,它应该检查所选时间是否与预订数组中的任何变量匹配。
循环正在运行(当我将 if 语句替换为 console.log(bookings[i]); 时它会运行)。
<html>
<head></head>
<body>
<input type="time" name="time" id="time">
<button id="submit" class="button">Submit</button>
<script>
var bookings = ["10:00", "10:15", "10:30"];
function addBooking() {
for (i = 0; i < bookings.length; i++) {
if (bookings[i] == document.getElementById("time").value) {
alert("Time unavailable.");
} else {
alert("Booking succesful.");
}
break;
}
}
document.getElementById("submit").addEventListener("click", addBooking);
</script>
</body>
</html>
提交表单时,该函数仅检查第一个变量(如果我输入 10:00,它会提醒时间不可用,但如果我输入 10:15 或 10:30,它会提醒“预订成功”)如果输入与 bookings 数组中的任何变量匹配,则应警告“时间不可用”。 编辑:删除中断不能解决问题。
最佳答案
因为您总是在第一次检查后break
!所以你只是将第一个值与输入进行比较,你也不必明确地循环这些值,在你的情况下你可以只用一个 if 语句来做,就像这样
if (bookings.indexOf(document.getElementById("time").value) === -1) {
alert("Booking succesful.");
} else {
alert("Time unavailable.");
}
关于带有 if 语句的 JavaScript for 循环只检查第一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56415131/