我写了一个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