我寫了一個javascript來驗證我的表單上的幾個簡單字段。我的問題是,即使表單上沒有錯誤,代碼也能正常工作。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;
}
}
}
因爲'parseInt()'可以返回'NaN'(即如果將字符串傳遞給它),所以要注意''parseInt()'',這可能會導致其他問題,並且如果用戶顯示在屏幕上某處,通常會讓用戶感到困惑。 [Brendon Cheves's](http://stackoverflow.com/a/10097688/1304626)解決方案更強大一點;結合他和你的並且檢查'NaN'將是明智的。 – 2012-04-20 02:31:36