Javascript getElementById 行为奇怪

标签 javascript object loops plane

我正在使用 for 循环循环访问一些具有起始值的元素(飞机上的座位)。

这里是:
seatNum - 要循环的座位数
startSeat - 开始骑行的座位

我正在从表单“onsubmit”中调用该函数。

当我尝试获取具有“s1”“s2”“s3”等id命名约定的元素...“s45”“s46”等...基于循环时,问题出现在for循环中计数器添加到起始座位。从0(起始座位)数到seatNum(多少个座位)。

知道为什么 by id 不能正确解析吗?除了 for 循环中的最后一个,所有其他的都工作正常。

是的,我是编程新手,所以我可能没有最佳实践,请在风格上多多包涵。

function check() {
    var startSeat;
    var fName = document.getElementById('fName').value
    var lName = document.getElementById('lName').value
    var address = document.getElementById('address').value
    var city = document.getElementById('city').value
    var state = document.getElementById('state').value
    var zip = document.getElementById('zip').value
    var phone = document.getElementById('phone').value
    var seatNum = document.getElementById('seatNumber').value
    var y=document.getElementById('seatList1').value;
    var z=document.getElementById('seatList2').value;

    if (z >= y) {
        startSeat = y;
    }
    else {
        startSeat = z;
    }

    if ( (fName == "") || (lName == "") || (address == "") || (phone == "") || (zip == "") || (state == "") || (city == "") ) {
        alert("You must fully complete the form");
        return false;
    }

    for (var i = 0; i < seatNum; i++) {
        if (document.getElementById("s"+(startSeat+i)).className=="taken"){
            alert("Selected seat(s) already booked.");
            return false;
        }
    else {
            continue;
        }
    }
}

最佳答案

将您的 yz 变量转换为数字:

var y = +document.getElementById('seatList1').value;
var z = +document.getElementById('seatList2').value;

var startSeat = (z >= y) ? y : z; // or simply startSeat = Math.min(z,y);

这将解决 @Faruz 的问题指出。

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

相关文章:

javascript - 如何在一个文本区域中获得 3 个不同值的总和

javascript - 如何获取在第一页创建的另一个 php 文件上创建的 JavaScript 对象?

javascript - 循环和递减总和

javascript - 如何在react中捕获来自Spring的错误消息

javascript - HTML 和 CSS 和 Javascript : How to make a onclick even remove text in input text fields

javascript - 检查地址路径是否可用

ios - 我的所有对象都在我的 iOS 模拟器中消失了,这是为什么?

Java : Super class array object assigned with sub class array object

arrays - 使用完成处理程序结束循环的方法?

python - 用于与 Python/Pandas 中的列中的先前值进行成对比较的循环