年月日联动的JS代码

丶灬走出姿态 提交于 2019-12-21 00:53:38
新建一个JS文件,起个名,把以下代码复制过去
function   YYYYMMDDstart()   
  
{   
          MonHead   
=   [31,   28,   31,   30,   31,   30,   31,   31,   30,   31,   30,   31];   
    
          
//先给年下拉框赋内容   
          var   y       =   new   Date().getFullYear();   
          
for   (var   i   =   (y-30);   i   <   (y-10);   i++)   //以今年为准,显示前30年之后的20年   
                  document.form1.YYYY.options.add(new   Option(""+i+"",   i));   
    
          
//赋月份的下拉框   
          for   (var   i   =   1;   i   <   13;   i++)   
                  document.form1.MM.options.add(
new   Option(""+i+"",   i));   
    
//          document.form1.YYYY.value   =   y;   //获取到当前年份
//
          document.form1.MM.value   =   new   Date().getMonth()   +   1;   获取到当前月份
          var   n   =   MonHead[new   Date().getMonth()];   
          
if   (new   Date().getMonth()   ==1   &&   IsPinYear(YYYYvalue))   n++;   
                  writeDay(n);   
//赋日期下拉框Author:meizz   
//
          document.form1.DD.value   =   new   Date().getDate();   获取到当前日期
  }
   
  
function   YYYYDD(str)   //年发生变化时日期发生变化(主要是判断闰平年)   
  {   
          
var   MMvalue   =   document.form1.MM.options[document.form1.MM.selectedIndex].value;   
          
if   (MMvalue   ==   ""){   var   e   =   document.form1.DD;   optionsClear(e);   return;}   
          
var   n   =   MonHead[MMvalue   -   1];   
          
if   (MMvalue   ==2   &&   IsPinYear(str))   n++;   
                  writeDay(n)   
  }
   
  
function   MMDD(str)     //月发生变化时日期联动   
  {   
          
var   YYYYvalue   =   document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value;   
          
if   (YYYYvalue   ==   ""){   var   e   =   document.form1.DD;   optionsClear(e);   return;}   
          
var   n   =   MonHead[str   -   1];   
          
if   (str   ==2   &&   IsPinYear(YYYYvalue))   n++;   
                  writeDay(n)   
  }
   
  
function   writeDay(n)     //据条件写日期的下拉框   
  {   
          
var   e   =   document.form1.DD;   optionsClear(e);   
          
for   (var   i=1;   i<(n+1);   i++)   
                  e.options.add(
new   Option(""+i+"",   i));   
  }
   
  
function   IsPinYear(year)//判断是否闰平年   
  {       return(0   ==   year%4   &&   (year%100   !=0   ||   year%400   ==   0));}   
  
function   optionsClear(e)   
  
{   
          
for   (var   i=e.options.length;   i>0;   i--)   
                  e.remove(i);   
  }
 

在HTML页里调用此JS文件,并输入以下代码:
<select name="YYYY" onchange="YYYYDD(this.value)">
                
<option value="0">选择年</option>
            
</select>
            
<select name="MM" onchange="MMDD(this.value)">
                
<option value="0">选择月</option>
            
</select>
            
<select name="DD">
                
<option value="0">选择日</option>
            
</select>
在<body>里添加<body onload="YYYYMMDDstart()">

还忘了一件事,本人不知道用客户端控件在aspx.cs页里怎么能接收到值,所以用了一个笨办法,写了一个JS,在提交按钮的时候调用此JS。(如果哪位高人看了嚣张的博客,又知道怎么更好的解决的话,请留言指教,万分感谢)
<script language="javascript" type="text/javascript">
    
function year()
    
{
        
var y=document.getElementById("YYYY").value;
        document.getElementById(
"hidYear").value=y;
        
var m=document.getElementById("MM").value;
        document.getElementById(
"hidMonth").value=m;
        
var d=document.getElementById("DD").value;
        document.getElementById(
"hidDay").value=d;
    }

    
</script>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!