年、月、日下拉菜单

工作之余就学学js,费了好几个工作之余终于写出来了

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>  </title>
	<meta name="generator" content="editplus" />
	<meta name="author" content="" />
	<meta name="keywords" content="" />
	<meta name="description" content="" />
	<style type="text/css">
	select{ width:100px;}
	span{ padding:0 10px 0 5px;}
	</style>
</head>
<body>
<select id="year" name="">
	
</select><span>年</span>
<select id="month" name="">
	
</select><span>月</span>
<select id="day" name="">
	
</select><span>日</span>

<p>[1,3,5,7,8,10,12]共31天</p>
<p>[44,6,9,11]共30天</p>
<p>[2]共28天</p>
<script type="text/javascript">
	window.onload = function()
	{
		var year = $('year');
		var month = $('month');
		var day = $('day');
		
		getDate(year,1980,(new Date).getFullYear());
		getDate(month,1,12);
		getDate(day,1,31);
		month.onchange = function()//改变月份值的时候
		{
			var val = this.value; //获得月份的值
			var valY = year.value; //获得年的值
			var run = (valY % 4 == 0 && valY % 100 != 0) || ( valY % 400 == 0)//判断是不是润年
			removeDate(day)//清空日的值
			if(val == 2){//如果是2月
				return run ? getDate(day,1,29): getDate(day,1,28)//在如果是2月的前提下如果是润年则一个月有29年,否则为28天
			}else if(val == 4 || val == 6 || val == 9 || val == 11){ //如果是一个月30天的月份
				getDate(day,1,30); //一个月有30天
			}else{
				getDate(day,1,31); //则剩下的每个月都为31天
			}
		}
		year.onchange = function()//改变年份值的时候
		{
			var val = this.value;//当前年份的值
			var valM = month.value; //当前月份的值
			var run = (val % 4 == 0 && val % 100 != 0) || ( val % 400 == 0)//判断是不是润年
			removeDate(day);//清空日的值
			if(run && valM == 2){//如果选中的年份是润年并且是2份
				getDate(day,1,29) //则当月有29天
			}else if(valM ==2){ //如果选中的年份不是润年但月份是2月
				getDate(day,1,28)//则当月有28天
			}else if(valM == 4 || valM == 6 || valM == 9 || valM == 11){ //如果是一个月30天的月份
				getDate(day,1,30);//一个月有30天
			}else{
				getDate(day,1,31);//则剩下的每个月都为31天
			}
		}

	}
	function $(id)
	{
		return typeof id === 'string' ? document.getElementById(id) : id;
	}
	function getDate(obj,m,n)
	{
		for( var i = m; i <= n; i++)
		{
			var option = document.createElement('option'); //创建option

			option.value = i; //设置option的值

			option.innerHTML = i; //设置option的innerHTML;

			obj.appendChild(option); //将option添加入对象中
		}
	}
	function removeDate(obj)
	{
		obj.options.length = 0; //清空对象中的option
	}
</script>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值