0

我编写了一个 Javascript 来验证表单上的一些简单字段。我的问题是,即使表单上没有错误,代码也能正常工作。

具体来说,它会在if(openHour > closeHour)

这是代码:

function checkForm()
{  
    var openHour;
    var closeHour;
    var i;

    for(i=1;i<8;i++)
    {
    openHour = document.getElementById("openHours" + i).value;
    closeHour= document.getElementById("closeHours" + i).value;

    if(openHour > closeHour)
    {   
    document.getElementById('error').innerHTML= "Opening Error at " + i;  
    return false;
    }
    if(openHour == "0" && closeHour > 0)
    {
    document.getElementById('error').innerHTML= "Closing Error at " + i;  
    return false;
    }


    }
}
4

2 回答 2

2

openHours 和 closeHours 字段中是否始终存在默认值?

尝试设置一些默认值,例如:

var openHour = 0;
var closeHour = 0;

然后在分配之前检查 openHours 和 closedHours 中是否有值:

if (document.getElementById("openHours" + i).value != null && document.getElementById("openHours" + i).value != "")
    openHour = document.getElementById("openHours" + i).value;


if (document.getElementById("closeHours" + i).value != null && document.getElementById("closeHours" + i).value != "")
    closeHour = document.getElementById("closeHours" + i).value;
于 2012-04-10T23:04:11.167 回答
1
openHour = parseInt(document.getElementById("openHours" + i).value);
closeHour = parseInt(document.getElementById("closeHours" + i).value);

我只需要将值解析为整数以便能够比较它们。

感谢你的帮助

于 2012-04-17T19:12:10.547 回答