javascript实现日期三级联动下拉框选择菜单
由于工作中涉及到生日编辑资料编辑,年月日用上面网址案例:bug提示:
编辑生日栏的【年】或者【月】,之前保存的具体的【日】就不显示啦,产品说不管编辑哪个数据,其他数据不变;
然后自己改了一下代码:
JS年月日三级联动下拉框日期选择代码 请选择年 选择月 选择日 varchangeDD=1;//->一个全局变量 functionYYYYMMDDstart(){ MonHead=[31,28,31,30,31,30,31,31,30,31,30,31]; //先给年下拉框赋内容 vary=newDate().getFullYear(); for(vari=(y-47);i<(y+21);i++)//以今年为准,前30年,后30年 document.reg_testdate.YYYY.options.add(newOption(""+i+"年",i)); //赋月份的下拉框 for(vari=1;i<13;i++) document.reg_testdate.MM.options.add(newOption(""+i+"月",i)); document.reg_testdate.YYYY.value=y; document.reg_testdate.MM.value=newDate().getMonth()+1; varn=MonHead[newDate().getMonth()]; if(newDate().getMonth()==1&&IsPinYear(YYYYvalue))n++; writeDay(n);//赋日期下拉框 //->赋值给日,为当天日期 //document.reg_testdate.DD.value=newDate().getDate(); } if(document.attachEvent) window.attachEvent("onload",YYYYMMDDstart); else window.addEventListener('load',YYYYMMDDstart,false); functionYYYYDD(str)//年发生变化时日期发生变化(主要是判断闰平年) { varMMvalue=document.reg_testdate.MM.options[document.reg_testdate.MM.selectedIndex].value; if(MMvalue==""){ //vare=document.reg_testdate.DD; optionsClear(e); return; } varn=MonHead[MMvalue-1]; if(MMvalue==2&&IsPinYear(str))n++; writeDay(n) } functionMMDD(str)//月发生变化时日期联动 { varYYYYvalue=document.reg_testdate.YYYY.options[document.reg_testdate.YYYY.selectedIndex].value; if(YYYYvalue==""){ vare=document.reg_testdate.DD; optionsClear(e); return; } varn=MonHead[str-1]; if(str==2&&IsPinYear(YYYYvalue))n++; writeDay(n) } functionwriteDay(n)//据条件写日期的下拉框 { vare=document.reg_testdate.DD; optionsClear(e); for(vari=1;i<(n+1);i++) { e.options.add(newOption(""+i+"日",i)); if(i==changeDD){ e.options[i].selected=true;//->保持选中状态 } } console.log(i); console.log(changeDD); } functionIsPinYear(year)//判断是否闰平年 { return(0==year%4&&(year%100!=0||year%400==0)); } functionoptionsClear(e){ e.options.length=1; } //->随时监听日的改变 functionDDD(str){ changeDD=str; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。