html+js动态显示3个select标签

 以下是用HTML+JS针对select标签做的操作。

判断闰年和平年下2月的天数,也判断大也和小月的天数,并动态显示出来。(代码有些地方还不够简洁!)

在做的时候碰到了一个问题,在动态往select标签里添加内容的时候,用document.write添加时可以显示,但用document.getElementById("select标签ID").innerHTML添加时就不行了,原来innerHTML对select标签不起作用。

经过在网上搜索,找到了解决办法。

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>日期JS</title>
  5.     <script type="text/javascript">
  6.         var date=new Date();
  7.         //读出所有年份
  8.         var startYear=1970;
  9.         var nowYear=date.getFullYear();
  10.         var yearArr=new Array();
  11.         var arrIndex=0;
  12.         for(var i=startYear;i<=nowYear;i++)
  13.         {
  14.             yearArr[arrIndex]=i;
  15.             arrIndex++;
  16.         }
  17.         //读出所有月份
  18.         var nowMonth=date.getMonth();
  19.         var monthArr=new Array();
  20.         for(var i=1;i<=12;i++)
  21.         {
  22.             monthArr[i-1]=i;
  23.         }
  24.         //读出所有日期
  25.         var nowDate=date.getDate();
  26.         var dateArr=new Array();
  27.         function ArrDates(count)
  28.         {
  29.             dateArr=new Array();
  30.             for(var i=1;i<=count;i++)
  31.             {
  32.                 dateArr[i-1]=i;
  33.             }
  34.         }
  35.     
  36.     //判断闰年  
  37.     //value:选中的年
  38.     function ShowDate(value,_classid)
  39.     {
  40.         //判断是不是闰年
  41.         var reg = /^[0-9]*[1-9][0-9]*$/;
  42.         var year=parseInt(value);
  43.         if(reg.test(year))
  44.         {
  45.             if(year % 4 == 0 && year % 100 != 0 || year %  400 == 0)
  46.             {
  47.                 if(_classid == "1")
  48.                 {
  49.                     alert(year+"是闰年");
  50.                 }
  51.                 return "true";//闰年
  52.                 
  53.             }
  54.             else
  55.             {
  56.                 if(_classid == "1")
  57.                 {
  58.                     alert(year+"不是闰年");
  59.                 }
  60.                 return "false";//不是闰年
  61.             }
  62.          }
  63.          else
  64.          {
  65.             if(_classid == "1")
  66.             {
  67.                 alert("输入不合法,必须是正整数");
  68.             }
  69.             return "error";//输入内容不对
  70.          }
  71.       }
  72.     
  73.     //显示天数
  74.     //month:选中的月
  75.     //yearBoll:是否为闰年
  76.     function ShowNowDate(month,yearBoll)
  77.     {
  78.         switch(parseInt(month))
  79.         {
  80.             case 1:
  81.                  ArrDates(31);
  82.                  break;
  83.             case 2:
  84.                  if(yearBoll == "true") 
  85.                  {
  86.                     ArrDates(29);
  87.                  }
  88.                  else if(yearBoll == "false")
  89.                  {
  90.                     ArrDates(28);
  91.                  }
  92.                  break;
  93.             case 3:
  94.                  ArrDates(31);
  95.                  break;
  96.             case 4:
  97.                  ArrDates(30);
  98.                  break;
  99.             case 5:
  100.                  ArrDates(31);
  101.                  break;
  102.             case 6:
  103.                  ArrDates(30);
  104.                  break;
  105.             case 7:
  106.                  ArrDates(31);
  107.                  break;
  108.             case 8:
  109.                  ArrDates(31);
  110.                  break;   
  111.             case 9:
  112.                  ArrDates(30);
  113.                  break;
  114.             case 10:
  115.                  ArrDates(31);
  116.                  break;  
  117.             case 11:
  118.                  ArrDates(30);
  119.                  break;
  120.             case 12:
  121.                  ArrDates(31);
  122.                  break;      
  123.         }
  124.     }
  125.     
  126.     
  127.     //通过年、月来正确显示日期总天数
  128.     ///
  129.     //yObj:帮定年的select前台控件
  130.     //ySel:当前显示的年份
  131.     //mObj:帮定月的select前台控件
  132.     //mSel:当前显示的月份
  133.     function OnLoadDate(ySel,mSel)
  134.     {
  135.           if(mSel != "2")
  136.           {
  137.              ShowNowDate(mSel,"");
  138.           }
  139.           else
  140.           {
  141.              ShowNowDate(mSel,ShowDate(ySel));
  142.           }
  143.           var html="";
  144.           var sel2=document.getElementById("lw_select_date");          
  145.           for(var i=0;i<dateArr.length;i++)
  146.           {
  147.             
  148.             if(i==0)
  149.             {
  150.                 var options=new Option(i,dateArr[i]);
  151.                 sel2.add(options);
  152.                 html+="<option value="+ i +" selected>"+ dateArr[i] +"</option>"; 
  153.             }
  154.             else
  155.             {   
  156.                 var options=new Option(dateArr[i],i);
  157.                 sel2.add(options);
  158.             }
  159.           }
  160.     }
  161.    
  162.     </script>
  163. </head>
  164. <body>
  165.     <input  value="" id="lw_date" name="lw_date" />
  166.     <input type="button" value="判断年份是否为闰年" 
  167. onclick="javascript:ShowDate(document.getElementById('lw_date').value,'1');"/>
  168.     <div>
  169.         <select id="lw_select_year" 
  170. onchange="javascript:var month_obj=document.getElementById('lw_select_month');
  171. OnLoadDate(this.options[this.selectedIndex].text,month_obj.options[month_obj.selectedIndex].text)">
  172.             <script type="text/javascript">
  173.                 for(var i=0;i<yearArr.length;i++)
  174.                 {
  175.                     document.write("<option value="+ i +">"+ yearArr[i] +"</option>");
  176.                 }
  177.             </script>
  178.         </select>
  179.          <script type="text/javascript">
  180.               var yearObj=document.getElementById("lw_select_year");
  181.               var yearSel=yearObj.options[yearObj.selectedIndex].text;
  182.               
  183.         </script>
  184.         <select id="lw_select_month" 
  185. onchange="OnLoadDate(yearObj.options[yearObj.selectedIndex].text,this.options[this.selectedIndex].text)">
  186.             <script type="text/javascript">
  187.                 for(var i=0;i<monthArr.length;i++)
  188.                 {
  189.                     document.write("<option value="+ i +">"+ monthArr[i] +"</option>");
  190.                 }
  191.             </script>
  192.         </select>
  193.         <select id="lw_select_date">
  194.         </select>
  195.                 <script type="text/javascript">
  196.           var monthObj=document.getElementById("lw_select_month");
  197.           var monthSel=monthObj.options[monthObj.selectedIndex].text;
  198.             if(monthSel != "2")
  199.                   {
  200.                      ShowNowDate(monthSel,"true");
  201.                   }
  202.                   else
  203.                   {
  204.                      ShowNowDate(monthSel,ShowDate(yearSel));
  205.                   }
  206.                   
  207.                   var html="";
  208.                   var sel=document.getElementById("lw_select_date");
  209.                   for(var i=0;i<dateArr.length;i++)
  210.                   {
  211.                     var options=new Option(dateArr[i],i);
  212.                     sel.add(options,i+1);
  213.                   }
  214.         </script>
  215.     </div>
  216. </body>
  217. </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值