zoukankan      html  css  js  c++  java
  • 年月日联动select下拉菜单

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            select{
                font:20px/40px '宋体';
            }
            option{width: 100px;}
        </style>
    </head>
    <body>
    <div id="box">
        <select name="sel1" id="sel1">
            <option value="year"></option>
        </select>
        <select name="sel2" id="sel2">
            <option value="month"></option>
        </select>
        <select name="sel3" id="sel3">
            <option value="day"></option>
        </select>
        <!--<span id="result"></span>-->
    </div>
    
    <script>
        //生成日期
        function creatDate(){
            //生成1900年-2100年
            for(var i = 1900; i<=2100;i++){
                var option = document.createElement('option');
                option.setAttribute('value',i);
                option.innerHTML = i;
                sel1.appendChild(option);
            }
            //生成1月-12月
            for(var i = 1; i <=12; i++){
                var option = document.createElement('option');
                option.setAttribute('value',i);
                option.innerHTML = i;
                sel2.appendChild(option);
            }
            //生成1日—31日
            for(var i = 1; i <=31; i++){
                var option = document.createElement('option');
                option.setAttribute('value',i);
                option.innerHTML = i;
                sel3.appendChild(option);
            }
        }
        creatDate();
        //保存某年某月的天数
        var days;
        //年份点击
        sel1.onclick = function(){
            //月份显示默认值
            sel2.options[0].selected = true;
            //天数显示默认值
            sel3.options[0].selected = true;
        }
        //月份点击
        sel2.onclick = function(){
            //天数显示默认值
            sel3.options[0].selected = true;
            //计算天数的显示范围
            //如果是2月
            if(sel2.value == 2){
                //如果是闰年
                if((sel1.value % 4 === 0 && sel1.value % 100 !== 0)  || sel1.value % 400 === 0){
                    days = 29;
                    //如果是平年
                }else{
                    days = 28;
                }
                //如果是第4、6、9、11月
            }else if(sel2.value == 4 || sel2.value == 6 ||sel2.value == 9 ||sel2.value == 11){
                days = 30;
            }else{
                days = 31;
            }
            //增加或删除天数
            //如果是28天,则删除29、30、31天(即使他们不存在也不报错)
            if(days == 28){
                sel3.remove(31);
                sel3.remove(30);
                sel3.remove(29);
            }
            //如果是29天
            if(days == 29){
                sel3.remove(31);
                sel3.remove(30);
                //如果第29天不存在,则添加第29天
                if(!sel3.options[29]){
                    sel3.add(new Option('29','29'),undefined)
                }
            }
            //如果是30天
            if(days == 30){
                sel3.remove(31);
                //如果第29天不存在,则添加第29天
                if(!sel3.options[29]){
                    sel3.add(new Option('29','29'),undefined)
                }
                //如果第30天不存在,则添加第30天
                if(!sel3.options[30]){
                    sel3.add(new Option('30','30'),undefined)
                }
            }
            //如果是31天
            if(days == 31){
                //如果第29天不存在,则添加第29天
                if(!sel3.options[29]){
                    sel3.add(new Option('29','29'),undefined)
                }
                //如果第30天不存在,则添加第30天
                if(!sel3.options[30]){
                    sel3.add(new Option('30','30'),undefined)
                }
                //如果第31天不存在,则添加第31天
                if(!sel3.options[31]){
                    sel3.add(new Option('31','31'),undefined)
                }
            }
        }
    
        //结果显示
    //    box.onclick = function(){
    //        //当年、月、日都已经为设置值时
    //        if(sel1.value !='year' && sel2.value != 'month' && sel3.value !='day'){
    //            var day = new Date(sel1.value,sel2.value-1,sel3.value).getDay();
    //            result.innerHTML = sel1.value + '年' + sel2.value + '月' +  sel3.value + '日' + '星期' + changDay(day);
    //        }else{
    //            result.innerHTML = '';
    //        }
    //    }
        //星期格式切换
    //    function changDay(num){
    //        switch(num){
    //            case 0:
    //                return '日';
    //            case 1:
    //                return '一';
    //            case 2:
    //                return '二';
    //            case 3:
    //                return '三';
    //            case 4:
    //                return '四';
    //            case 5:
    //                return '五';
    //            case 6:
    //                return '六';
    //        }
    //    }
    </script>
    
    </body>
    </html>

    来源 http://www.cnblogs.com/xiaohuochai/p/5877594.html

  • 相关阅读:
    ajax请求或者页面需要缓存,代码如下
    jquery cookie 删除不了的处理办法
    大家来找茬-SpringMVC中Tomcat正常启动,始终访问不了Controller,出404错
    简单的批量读取外部insert文并插入DB
    关于Jquery.validate.js中动态删除验证remove方法的Bug
    Struts2.3.16.3 基本9个jar包
    CAS SSL证书错误处理
    cas 4.X单点登录实战
    如何高效利用时间
    ubuntu16.04 Detectron目标检测库配置(包含GPU驱动,Cuda,Caffee2等配置梳理)
  • 原文地址:https://www.cnblogs.com/heyiming/p/6835408.html
Copyright © 2011-2022 走看看