完全动态生成年月日下拉关联菜单

<script language="javascript">
/*
完全动态生成年月日下拉关联菜单
作者:多菜鸟
来源:http://blog.csdn.net/kingerq/
时间: 2007-11-24
*/
var today = "";//object
var YMD = '';//given date
var sname = [["year", 2000, 2007], ["month", 1, 12], ["day", 1, 31]];//name or id
var callFun = ["resetMonth", "resetDay", ""];// onchange select call function

//add select's option
function addOption( obj, start, end, selected ) {
  if( start <= end ) {
    for( i = start; i <= end; i++ ) {
  obj.options[i-start] = new Option( i, i );
  if( selected == i ) obj.options[i-start].selected = true;
 }
  }
 
}
//return a number for day of given month
function monthDay(intYear,intMonth){
    var mDate = new Date(intYear,intMonth,-1);
    var mDay = mDate.getDate() + 1;
   
    return mDay;   
}

function resetDay(){
  var Y = document.getElementById(sname[0][0]);
  var M = document.getElementById(sname[1][0]);
  var D = document.getElementById(sname[2][0]);
  var num = monthDay(Y.value, M.value);
  if( D.length > num ) {
    for( i = D.length; i >= num; i-- ) {
      D.options[i] = null;
    }
  }else if( D.length < num ){
     addOption(D, 1, num);
  }
}

function resetMonth(){
  var M = document.getElementById(sname[1][0]);
  M.value = 1;
  resetDay();
  //M.onchange();
}

//date fomart: YYYY-MM-DD
function setDefault(day){
  today = new Date();//default date is today
  if( day ) {
    splitDay = day.split("-");
    today = new Date( splitDay[0], splitDay[1]-1, splitDay[2] );
  }
  YMD = [today.getFullYear(), today.getMonth()+1, today.getDate()];//given date
}

//init date select
function initDate(obj){
 if( YMD.length == 0 ) setDefault();
 for( j = 0; j < sname.length; j++ ) {
  objOut = document.createElement("select");
  objOut.id = sname[j][0];
  objOut.name = sname[j][0];
  if( callFun[j] != "" ) eval('objOut.attachEvent("onchange", '+callFun[j]+');');
  document.getElementById(obj).appendChild(objOut);
  addOption(document.getElementById(sname[j][0]), sname[j][1], (j==2 ? monthDay(YMD[0], YMD[1]) : sname[j][2]) , YMD[j]);
 }
}
</script>
<div id="listSelect"></div>
<script language="javascript">
//setDefault("2005-2-22");
initDate("listSelect");
</script>
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值