js 改为 jQuery

hysy520 2009-12-01 10:22:29

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>
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Click_Me 2009-12-01
  • 打赏
  • 举报
回复

// 我这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>
hysy520 2009-12-01
  • 打赏
  • 举报
回复
最好是 年月日三下拉框联动
实在不行只能 给日期选择器了
sunshinexrain 2009-12-01
  • 打赏
  • 举报
回复
jquery-ui-datepicker
sunshinexrain 2009-12-01
  • 打赏
  • 举报
回复
如果是日期选择器,jquery有很成熟的插件
hysy520 2009-12-01
  • 打赏
  • 举报
回复
IE7 和firefox 兼容 可IE8不兼容
jamix 2009-12-01
  • 打赏
  • 举报
回复
改成jquery好像没有什么优势呀?
jquery的优势就是对DOM的操作,你这只是一个日期选择,没有必要吧?(加载一个50多K的文件)
有点得不偿失呀!!!
happy664618843 2009-12-01
  • 打赏
  • 举报
回复
不好改 问题不明确

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧