RT
<body onload="initDate(document.form1.year,document.form1.month,document.form1.day,yyyy,mm,dd)">
<select name="year" onchange="change(this, document.form1.month, document.form1.day)"></select> 年
<select name="month" onchange="change(document.form1.year, this, document.form1.day)"></select> 月<select name="day"></select> 日
</body>
<script language="JavaScript">
<!--
function initDate(year,month,day,YY,MM,DD)
{
//每个月的初始天数
MonDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
//当前的年份
var y = YY;
//当前的月份
var m = MM; //javascript月份为0-11
//但前的天份
var d = DD;
//以今年为准,向后2年,填充年份下拉框
for (var i = (y-50); i < (y+50); i++)
{
year.options.add(new Option(i,i));
}
//选中今年
year.value=y;
//填充月份下拉框
for (var i = 1; i <= 12; i++)
{
month.options.add(new Option(i,i));
}
//选中当月
month.value = m;
//获得当月的初始化天数
var n = MonDays[m-1];
//如果为2月,天数加1
if (m == 2 && isLeapYear(year.options[year.selectedIndex].value))
n++;
//填充日期下拉框
createDay(n,day);
//选中当日
day.value = d;
}
function change(year,month,day) //年月变化,改变日
{
var y = year.options[year.selectedIndex].value;
var m = month.options[month.selectedIndex].value;
//if (m == "" ){ clearOptions(day); return;}
var n = MonDays[m - 1];
if ( m ==2 && isLeapYear(y))
{
n++;
}
createDay(n,day)
}
function createDay(n,day) //填充日期下拉框
{
//清空下拉框
clearOptions(day);
//几天,就写入几项
for(var i=1; i<=n; i++)
{
day.options.add(new Option(i,i));
}
}
function clearOptions(ctl)//删除下拉框中的所有选项
{
for(var i=ctl.options.length-1; i>=0; i--)
{
ctl.remove(i);
}
}
function isLeapYear(year)//判断是否闰年
{
return((year%4 == 0 && year%100 != 0) || year%400 == 0);
}
//-->
</script>
解决方案 »
- javascript:1.收藏此文,2.推荐本文给好友
- 在Js里获取单击按钮的ID
- javascript初学者问题
- 头痛的问题,请求帮忙!
- 如何在右框架中显示页面加载进度
- 如何判断页面中插入的<script>标签中所生成的超链接是否被点击过?
- 有没有能够将网页上的图片设置为windows桌面背景的javascript?
- 没有对象,请问那一个对象???(在线等)
- 怎么在IE6下使用<meta HTTP-EQUIV="REFRESH" CONTENT="90;URL=my.asp">不起作用了
- 以为自己弄懂了传值与传址,结果似乎不是这样的...
- JS幻灯代码 请高手帮忙
- 求教,关与用JS查询输出<ul>,<li>的内容,会的大虾进来帮帮我艾,,,,
jquery的优势就是对DOM的操作,你这只是一个日期选择,没有必要吧?(加载一个50多K的文件)
有点得不偿失呀!!!
// 我这JQ也是先学现卖 你看看能用就将就用 呵呵
<script src="jquery.js"></script>
<body>
<select name="year" id="year"> </select> 年
<select name="month" id="month"> </select> 月
<select name="day" id="day"> </select> 日
</body>
<script language="JavaScript">
<!--
var Selector = function(){
var d = new Date(), y = d.getFullYear(), m = d.getMonth() + 1, day = d.getDate();
var initDate = function() {
createOpt($('#year'), y - 10, (y + 50), y);
createOpt($('#month'), 1, 12, m);
createOpt($('#day'), 1, day, day);
};
var bindEvents = function(){
$('#month,#year').bind('change', function(){
createOpt($('#day'), 1, new Date($('#year').val(),$('#month').val(),0).getDate(), 1);
});
}; var createOpt = function(obj, start, end, sign){
var html = ''; obj.html('');
for(var i = start; i <= end; i++){
html += '<option value=' + i + ((i == sign) ? ' selected = true' : '')+'>' + i + '</option>';
}
obj.html(html);
};
return {
init: function(){
initDate();
bindEvents();
}
} }(); Selector.init();
</script>