如果返回错误

IFs coming back false

本文关键字:错误 返回 如果      更新时间:2023-09-26

为什么这个javascript的第28行和第39行(if( clas == 1)if( clas ==2 )上的if总是返回false?如果我用其他替换第二个。它每次都会被执行。我已经尝试了=====我也尝试将 1 和 2 作为字符串,并且有和没有clas = parseInt(cla)

// JavaScript Document
var seat = new Array()
var fclass
var econ
var flight
var totseats
function init( seats, firclass, econo, flightnum )
{
    seat[0] = 'crew'
    fclass = firclass
    econ = econo
    flight = flightnum
    totseats = seats
    for( var count = 1; count <= seats; count++ )
    {
        seat[count] = 0;
    };
};
function reservation()
{
    var cla = document.getElementById('class').value;
    var name = document.getElementById('first').value;
    name += ' ';
    name += document.getElementById('last').value;
    clas = parseInt(cla)
    if( clas == 1 )
    {
        for( var seatnum = 1; seatnum < econ; seatnum++)
        {
            if( seat[seatnum] == 0 )
            {
                seat[seatnum] = name
                break;
            }
        }
    }
    if( clas == 2 )
    {
        for( var seatnum = econ; seatnum < totseats; seatnum++)
        {
            if( seat[seatnum] == 0 )
            {
                seat[seatnum] = name
                break;
            }
        }
    };
    pticket( name, seatnum );
};
function pticket( name, seatnum )
{
    document.getElementById('tname').innerHTML = name;
    document.getElementById('flight').innerHTML = 'Flight: ' + flight;
    document.getElementById('seat').innerHTML = seatnum;
    if( seatnum < econ )
    {
        document.getElementById('class').innerHTML = 'First Class';
    }
    else
    {
        document.getElementById('class').innerHTML = 'Economy';
    }
};

http://jsfiddle.net/FB26t/1/附言JSFIDDLE根本不运行脚本,但它确实可以作为实际网页正常运行

具有id的元素不是您的<select>。这就是原因。您的类<select>元素具有id选择

此外,还应为 parseInt 函数指定 radix 参数,因为并非所有浏览器中的默认值都为 10

//and do not forget the var statement if you want a local variable
var clas = parseInt(cla, 10); 

小提琴

我放了document.getElementById('class').value但相应的元素实际上是document.getElementById('select')