我寫了一個html表單,允許用戶從下拉菜單中選擇他們的生日。一旦用戶提交表單,這些值將被存儲到JavaScript函數中的變量中,該函數將首先檢查用戶是否從每個字段(月,日年)中選擇了一個值,然後驗證生日是有效日期。如果一切正確,那麼下一個表單將會被加載。我的問題是,一旦函數驗證選擇了一個月和一天,程序將加載下一個表單而不檢查年份。Javascript函數似乎返回true時,它應該返回false
這裏是Java腳本函數:
function checkBday() {
var day = document.forms["register"]["DateOfBirth_Day"].value;
var month = document.forms["register"]["DateOfBirth_Month"].value;
var year = document.forms["register"]["DateOfBirth_Year"].value;
if(month == "- Month -") {
alert("Select a month");
return false;
}
if(day == "- Day -") {
alert("Select a day");
return false;
}
if(year == "- year -") {
alert("Select a year");
return false;
}
if((month == 2 && day > 28) || (month == 4 && day == 31) || (month == 6 && day == 31) || (month == 9 && day == 31) || (month == 11 && day == 31)) {
alert("Invalid birthday");
return false;
}
}
下面是函數調用:
if(checkBday() == false) {
return false; }
else {
alert("Registration was successful!");
return true; }
- Day- - 月 - 和 - 如果不從所選年 - 爲默認值下拉式菜單。感謝您的幫助,我在這方面做了一個小菜一碟。
你有你的JS任何錯誤?看看控制檯。還包括這些選擇元素的標記。我要求加價的原因是因爲你年的「y」是小寫,而其餘的是大寫。你甚至在最後寫上大寫字母。 –
奇數碼。 checkBday永遠不會返回true。只有在未觸發「if」的情況下才會定義。你也需要提供你的HTML。 –
if(!month){ alert(「Select a month」); 返回false; } – user1572796