年月日三级联动代码示例

yymmdd.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>年月日三级联动</title>
		
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">    
		<!--
		<link rel="stylesheet" type="text/css" href="styles.css">
		-->
	</head>
	 
	<body>
		<form id="form1" name="form1" action="">
			<table>
				<tr>
					<td class="input-item-name"><span class="input-required">出生日期</span></td>
					<td class="input-item-value">
						<select name="year" onchange="YYYYDD(this.value)"><option value="year">==请选择 年==</option></select>
						   
						<select name="month" onchange="MMDD(this.value)"><option value="MMvalue">==请选择月==</option></select>
						   
						<select name="day"><option value="day">==请选择日 ==</option></select>
					</td>
				</tr>
				<script type="text/javascript" src="./yymmdd.js"></script>
			</table>
		</form>
	</body>
</html>

yymmdd.js
// begin yymmdd.js
function YYYYMMDDstart() {
	MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];//先给年下拉框赋内容
	var y = new Date().getFullYear();
	for (var i = y; i > (y - 100); i--) {
		//以今年为准,前100年
		document.form1.year.options.add(new Option(" " + i + "年", i));//赋月份的下拉框
	}
	for (var i = 1; i < 13; i++) {
		document.form1.month.options.add(new Option(" " + i + "月", i));
	}
	//document.form1.year.value = y;//初始化年
	//document.form1.month.value = new Date().getMonth() + 1;//初始化月
	var n = MonHead[new Date().getMonth()];
	if (new Date().getMonth() == 1 && IsPinYear(yearvalue)) {
		n++;
	}
	writeDay(n); //赋日期下拉框Author:meizz
	//document.form1.day.value = new Date().getDate();//初始化日
}
if (document.attachEvent) {
	window.attachEvent("onload", YYYYMMDDstart);
} else {
	window.addEventListener("load", YYYYMMDDstart, false);
}
//年发生变化时日期发生变化(主要是判断闰平年)
function YYYYDD(str) {
	var MMvalue = document.form1.month.options[document.form1.month.selectedIndex].value;
	if (MMvalue == "") {
		var e = document.form1.day;
		optionsClear(e);
		return;
	}
	var n = MonHead[MMvalue - 1];
	if (MMvalue == 2 && IsPinYear(str)) {
		n++;
	}
	writeDay(n);
}
//月发生变化时日期联动
function MMDD(str) {
	var yearvalue = document.form1.year.options[document.form1.year.selectedIndex].value;
	if (yearvalue == "") {
		var e = document.form1.day;
		optionsClear(e);
		return;
	}
	var n = MonHead[str - 1];
	if (str == 2 && IsPinYear(yearvalue)) {
		n++;
	}
	writeDay(n);
}
//据条件写日期的下拉框
function writeDay(n) {
	var e = document.form1.day;
	optionsClear(e);
	for (var i = 1; i < (n + 1); i++) {
		e.options.add(new Option(" " + i + "日", i));
	}
}
//判断是否闰平年
function IsPinYear(year) {
	return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
}
function optionsClear(e) {
	e.options.length = 1;
}
// end yymmdd.js

转载于:https://my.oschina.net/chwencong/blog/53881

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经典年月三级联动 <html> <head> <title>年月三下拉框联动 </title> <meta http-equiv='Content-Type' content='text/html; charset=gb2312'> </head> <body> <form name=form1> <select name=YYYY onChange="YYYYDD(this.value)"> <option value="">请选择 年 </option> </select> <select name=MM onChange="MMDD(this.value)"> <option value="">选择 月 </option> </select> <select name=DD> <option value="">选择 </option> </select> </form> <script language="JavaScript"> <!-- function YYYYMMDDstart() { MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //先给年下拉框赋内容 var y = new Date().getFullYear(); for (var i = (y-30); i < (y+30); i++) //以今年为准,前30年,后30年 document.form1.YYYY.options.add(new Option(" "+ i +" 年", i)); //赋月份的下拉框 for (var i = 1; i < 13; i++) document.form1.MM.options.add(new Option(" " + i + " 月", i)); document.form1.YYYY.value = y; document.form1.MM.value = new Date().getMonth() + 1; var n = MonHead[new Date().getMonth()]; if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++; writeDay(n); //赋期下拉框Author:meizz document.form1.DD.value = new Date().getDate(); } if(document.attachEvent) window.attachEvent("onload", YYYYMMDDstart); else window.addEventListener('load', YYYYMMDDstart, false); function YYYYDD(str) //年发生变化时期发生变化(主要是判断闰平年) { var MMvalue = document.form1.MM.options[document.form1.MM.selectedIndex].value; if (MMvalue == ""){ var e = document.form1.DD; optionsClear(e); return;} var n = MonHead[MMvalue - 1]; if (MMvalue ==2 && IsPinYear(str)) n++; writeDay(n) } function MMDD(str) //月发生变化时联动 { var YYYYvalue = document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value; if (YYYYvalue == ""){ var e = document.form1.DD; optionsClear(e); return;} var n = MonHead[str - 1]; if (str ==2 && IsPinYear(YYYYvalue)) n++; writeDay(n) } function writeDay(n) //据条件写期的下拉框 { var e = document.form1.DD; optionsClear(e); for (var i=1; i <(n+1); i++) e.options.add(new Option(" "+ i + " ", i)); } function IsPinYear(year)//判断是否闰平年 { return(0 == year%4 && (year%100 !=0 || year%400 == 0));} function optionsClear(e) { e.options.length = 1; } //--> </script> </body> </html>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值