JS实现控制月末日期的下拉列表

http://blog.sina.com.cn/s/blog_726beebf0100oubr.html


原来这个东东是用.NET控件实现的,但是触发SelectedIndexChanged事件的时候会自动刷页面,用户体验不大好。现在改用JS实现。

HTML部分代码:
<body MS_POSITIONING="GridLayout" οnlοad="setup()">
 
        <SELECT id="sy" name="sy" runat="server">
         <OPTION selected></OPTION>
        </SELECT>年</SPAN></SPAN>
       <SELECT id="sm" name="sm" runat="server">
        <OPTION selected></OPTION>
       </SELECT><SPAN class="normaltext">月</SPAN>
       <SELECT id="sd" name="sd" runat="server">
        <OPTION selected></OPTION>
       </SELECT><SPAN class="normaltext">日</SPAN>
起初我是想通过触发下拉列表的事件,这样写<SELECT id="sy"  οnchange="func()" name="sy" runat="server">, 结果怎么也触发不到onchange。最后,所有的触发还是写在setup()里。
 
JS部分代码:
function setup()
{
 initsb(); 
 document.getElementByIdx("sy").οnchange=new Function("sbchange()");
 document.getElementByIdx("sm").οnchange=new Function("sbchange()");
 }
function initsb()
{
   with(document.getElementByIdx("sy")){
    length = 0; 
    now =new Date()      
    y =now.getFullYear();
    for(i=1900;i<y;i++)options[length]=new Option(i,i);
    options[0].selected = true;
   }
    with(document.getElementByIdx("sm")){
    length = 0; 
    for(i=1;i<13;i++)options[length]=new Option(i,i);
    options[0].selected = true;
   }
   with(document.getElementByIdx("sd")){
    length = 0;
    maxDays = 31;
    for(i=1;i<=maxDays;i++)options[length]=new Option(i,i);
    options[0].selected = true;
   }
 }
 
function sbchange()
{  
   with(document.getElementByIdx("sd")){
    length = 0;   
    m= document.getElementByIdx("sm").value;
    y= document.getElementByIdx("sy").value;
    if (m == 4 || m == 6 || m == 9 || m == 11) maxDays = 30;
        else if(m == 2) {
            if ( y % 4 > 0) maxDays = 28;
            else if ( y % 100 == 0 && y % 400 > 0) maxDays = 28;
            else maxDays = 29;
        }
    else  maxDays = 31;
    for(i=1;i<=maxDays;i++)options[length]=new Option(i,i);
   } 
 }
 
 //sy是select year的缩写,sm是select month的缩写, sd是select day的缩写,sb是 select birthday的缩写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值