javascript实现年月日三级联动
作者:Miao 阅读:3560次
html
<select name="year"></select> <select name="month"></select> <select name="day"></select>
javascript,新建js文件保存即可,方便调用。
SYT="-选择年份-"; SMT="-选择月份-"; SDT="-选择日期-"; BYN=50;//年份范围往前n年 AYN=5;//年份范围往后n年 function YMDselect(){ this.SelY=document.getElementsByName(arguments[0])[0]; this.SelM=document.getElementsByName(arguments[1])[0]; this.SelD=document.getElementsByName(arguments[2])[0]; this.DefY=this.SelD?arguments[3]:arguments[2]; this.DefM=this.SelD?arguments[4]:arguments[3]; this.DefD=this.SelD?arguments[5]:arguments[4]; this.SelY.YMD=this; this.SelM.YMD=this; this.SelY.onchange=function(){YMDselect.SetM(this.YMD)}; if(this.SelD)this.SelM.onchange=function(){YMDselect.SetD(this.YMD)}; YMDselect.SetY(this) }; //设置年份 YMDselect.SetY=function(YMD){ dDate = new Date(); dCurYear = dDate.getFullYear(); YMD.SelY.options.add(new Option(SYT,'0')); for(i = dCurYear+AYN; i>(dCurYear-BYN); i--){ YMDYT=i+'年'; YMDYV=i; OptY = new Option(YMDYT,YMDYV); YMD.SelY.options.add(OptY); if(YMD.DefY==YMDYV) OptY.selected=true } YMDselect.SetM(YMD) }; //设置月份 YMDselect.SetM=function(YMD){ YMD.SelM.length = 0; YMD.SelM.options.add(new Option(SMT,'0')); if(YMD.SelY.value>0){ for(var i=1;i<=12;i++){ YMDMT=i+'月'; YMDMV=i; OptM=new Option(YMDMT,YMDMV); YMD.SelM.options.add(OptM); if(YMD.DefM==YMDMV) OptM.selected=true } } if(YMD.SelD)YMDselect.SetD(YMD) }; //设置日期 YMDselect.SetD=function(YMD){ YI=YMD.SelY.value; MI=YMD.SelM.value; YMD.SelD.length = 0; YMD.SelD.options.add(new Option(SDT,'0')); if(YI>0 && MI>0){ dPrevDate = new Date(YI, MI, 0); daysInMonth=dPrevDate.getDate(); for (d = 1; d <= parseInt(daysInMonth); d++) { YMDDT=d+'日'; YMDDV=d; OptD=new Option(YMDDT,YMDDV); YMD.SelD.options.add(OptD); if(YMD.DefD==YMDDV)OptD.selected=true } } }
调用方法
<script> /** * 年、月二级联动 * new YMDselect('year','month'); * new YMDselect('year','month',2010); //默认2010 * new YMDselect('year','month',2010,2); //默认2010年2月 **/ /** * 年、月、日三级联动 * new YMDselect('year','month','day'); * new YMDselect('year','month','day',2020); //默认20020年 * new YMDselect('year','month','day',2020,6); //默认20020年6月 * new YMDselect('year','month','day',2020,6,22); //默认20020年6月22日 **/ new YMDselect('year','month','day'); </script>
原文作者:故事我忘了°
原文链接:https://www.cnblogs.com/jsccc520/p/10242262.html
本站部分文章、数据、素材收集于网络,所有版权均归源网站或原作者所有!
如果侵犯了您的权益,请来信告知我们下线删除,邮箱:357234902@qq.com