zoukankan      html  css  js  c++  java
  • 时间选择的三级连动 年,月,日

    <script>
    var changeDD = 1;//->一个全局变量
      function YYYYMMDDstart() {
        MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        //先给年下拉框赋内容
        var y = new Date().getFullYear();
        for (var i = y ; i < (y + 5); i++) //以今年为准,前30年,后30年
          document.reg_testdate.YYYY.options.add(new Option(" " + i , i));
        //赋月份的下拉框
        for (var i = 1; i < 13; i++)
          document.reg_testdate.MM.options.add(new Option(" " + i , i));
        document.reg_testdate.YYYY.value = y;
        document.reg_testdate.MM.value = new Date().getMonth() + 1;
        var n = MonHead[new Date().getMonth()];
        if (new Date().getMonth() == 1 && IsPinYear(YYYYvalue)) n++;
        writeDay(n); //赋日期下拉框
        //->赋值给日,为当天日期
    //    document.reg_testdate.DD.value = new Date().getDate();
      }
      if (document.attachEvent)
        window.attachEvent("onload", YYYYMMDDstart);
      else
        window.addEventListener('load', YYYYMMDDstart, false);
    
      function YYYYDD(str) //年发生变化时日期发生变化(主要是判断闰平年)
      {
        var MMvalue = document.reg_testdate.MM.options[document.reg_testdate.MM.selectedIndex].value;
        if (MMvalue == "") {
    //      var e = document.reg_testdate.DD;
          optionsClear(e);
          return;
        }
        var n = MonHead[MMvalue - 1];
        if (MMvalue == 2 && IsPinYear(str)) n++;
        writeDay(n)
      }
    
      function MMDD(str) //月发生变化时日期联动
      {
        var YYYYvalue = document.reg_testdate.YYYY.options[document.reg_testdate.YYYY.selectedIndex].value;
        if (YYYYvalue == "") {
          var e = document.reg_testdate.DD;
          optionsClear(e);
          return;
        }
        var n = MonHead[str - 1];
        if (str == 2 && IsPinYear(YYYYvalue)) n++;
        writeDay(n)
      }
    
      function writeDay(n) //据条件写日期的下拉框
      {
        var e = document.reg_testdate.DD;
        optionsClear(e);
        for (var i = 1; i < (n + 1); i++)
        {
          e.options.add(new Option(" " + i , i));
          if(i == changeDD){
            e.options[i].selected = true; //->保持选中状态
          }
        }
        console.log(i);
        console.log(changeDD);
      }
    
      function IsPinYear(year) //判断是否闰平年
      {
        return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
      }
    
      function optionsClear(e) {
        e.options.length = 1;
      }
      //->随时监听日的改变
      function DDD(str){
        changeDD = str;
      }
      <、script>
    
    <form name="reg_testdate"> <select name="YYYY" onChange="YYYYDD(this.value)" id="yy"> <option value="">请选择</option> </select> <select name="MM" onChange="MMDD(this.value)" id="mm"> <option value="">选择</option> </select> <select name="DD" onChange="DDD(this.value)" id="dd"> <option value="">选择</option> </select> </form>
  • 相关阅读:
    阿里云ECS安装sqlserver,本地无法连接问题排查思路
    1433端口无法连接(sql server 数据库无法访问问题)解决思路
    开源框架 电商参考系统
    版本控制工具 Git 只下载开源项目的某个文件夹
    VUE 在idea中的运行项目
    开源框架 Java Guns 03 数据库替换为sqlite
    SQL Server 用ip地址登录 127.0.0.1
    开源框架 UI框架
    电商 电商系统汇总
    电商 平台汇总
  • 原文地址:https://www.cnblogs.com/yi11/p/7008681.html
Copyright © 2011-2022 走看看