有10个下拉框,前5个下拉框和后5个下拉框分别是开始时间和结束时间的年、月、日、时、分,完成目标是结束时间一定要大于开始时间。
算法:
将下拉框的值赋予一个数组,用for循环判断值的大小,当开始时间的值大于或小于结束时间时,分别输出“judge=false”和“judge=true”,退出循环;当开始时间等于结束时间时,则继续循环判断下一个值,直至循环结束,然后输出“judge=false”。
代码如下:
JS:
function sele(id) {
var sele_a = [sele1.value,sele2.value,sele3.value,sele4.value,sele5.value,sele6.value,sele7.value,sele8.value,sele9.value,sele10.value];
// alert(sele_a); //成功将值赋予数组
var judge = "";
for(i=0;i<5;i++){
if (sele_a[i]==sele_a[i+5]) {
continue; //当值相等时,继续循环
}else if(sele_a[i]>sele_a[i+5]){
judge = false; //当开始时间大于结束时间时,输出false,退出循环
}else{
judge = true; //当开始时间小于结束时间时,输出true,退出循环
}
break;
}
if(judge == ""){
judge = false;
}
alert(judge); //判断是否成功
};
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>时间判断</title>
</head>
<body>
<p>会议开始时间: <span>*</span></p>
<select name="year" id="sele1" onchange="sele(this.id)"><option value="">选择 年</option></select>
<select name="month" id="sele2" onchange="sele(this.id)"><option value="">选择 月</option></select>
<select name="day" id="sele3" onchange="sele(this.id)"><option value="">选择 日</option></select>
<select name="hour" id="sele4" onchange="sele(this.id)"><option value="">选择 小时</option></select>
<select name="minute" id="sele5" onchange="sele(this.id)"><option value="">选择 分钟</option></select>
<p>会议结束时间: <span>*</span></p>
<select name="year_end" id="sele6" onchange="sele(this.id)"><option value="">选择 年</option></select>
<select name="month_end" id="sele7" onchange="sele(this.id)"><option value="">选择 月</option></select>
<select name="day_end" id="sele8" onchange="sele(this.id)"><option value="">选择 日</option></select>
<select name="hour_end" id="sele9" onchange="sele(this.id)"><option value="">选择 小时</option></select>
<select name="minute_end" id="sele10" onchange="sele(this.id)"><option value="">选择 分钟</option></select>
</body>
</html>