这个算生日日期,因为是从100年前的到现年。

<select id="sel_year"></select>
<select id="sel_month"></select>
<select id="sel_day"></select>
 function dateLinkage(yearId, monthId, dayId, defaultYear, defaultMonth, defaultDay) {
     var objYear = document.getElementById(yearId);
     var objMonth = document.getElementById(monthId);
     var objDay = document.getElementById(dayId);
     var MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
     var year1 = new Date().getFullYear(), year2 = '', year3 = '';
     var month1 = '', month2 = '', month3 = '';
     var day1 = '', day2 = '', day3 = '';

     //生成年
     for (var i = (year1 - 100) ; i < year1; i++) {
         year2 = i == defaultYear ? 'selected="selected"' : '';
         year3 += '<option value="' + i + '" ' + year2 + '>' + i + '</option>';
     }
     objYear.innerHTML = year3;

     //生成月
     for (var i = 1; i <= 12; i++) {
         month1 = i < 10 ? ("0" + i) : i;
         month2 = i == defaultMonth ? 'selected="selected"' : '';
         month3 += '<option value="' + month1 + '" ' + month2 + '>' + month1 + '</option>';
     }
     objMonth.innerHTML = month3;

     //生成日
     for (var i = 1; i <= 31; i++) {
         day1 = i < 10 ? ("0" + i) : i;
         day2 = i == defaultDay ? 'selected="selected"' : '';
         day3 += '<option value="' + day1 + '" ' + day2 + '>' + day1 + '</option>';
     }
     objDay.innerHTML = day3;

     //年份变化事件
     objYear.change(function () {
         var curm = parseInt(objMonth.val());
         var num = MonHead[curm - 1];
         if (IsLeapYear(this.value)) {
             num = 29;
         }
         day3 = '';
         for (var i = 1; i <= num; i++) {
             day1 = i < 10 ? ("0" + i) : i;
             day3 += '<option value="' + day1 + '">' + day1 + '</option>';
         }
         objDay.innerHTML = day3;
     });

     //月份变化事件
     objMonth.change(function () {
         var curm = parseInt(this.value);
         var num = MonHead[curm - 1];
         if (IsLeapYear(objYear.val()) && curm == 2) {
             num = 29;
         }
         day3 = '';
         for (var i = 1; i <= num; i++) {
             day1 = i < 10 ? ("0" + i) : i;
             day3 += '<option value="' + day1 + '">' + day1 + '</option>';
         }
         objDay.innerHTML = day3;
     });

     //判断是否是闰年
     function IsLeapYear(year) {
         return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
     }
 }

省市区联动,变量名没有好好想,随意了点。

<select id="sf"> </select>
<select id="cs"> </select>
<select id="qy"> </select>
 function liandong(sfid, csid, qyid, sfDefault, csDefault, qyDefault) {
     var sfbox = document.getElementById(sfid);
     var csbox = document.getElementById(csid);
     var qybox = document.getElementById(qyid);

     var sfinit = function () {
         var list = '';
         for (var i = 0; i < provinceList.length; i++) {
             var cursf = provinceList[i];
             var strSel = cursf.name == sfDefault ? ' selected="selected"' : '';
             list += '<option' + strSel + '>' + cursf.name + '</option>';
         }
         sfbox.innerHTML = list;
         csinit();
     };

     var csinit = function () {
         var list = '';
         var curcslist = provinceList[sfbox.selectedIndex].cityList;
         for (var i = 0; i < curcslist.length; i++) {
             var curcs = curcslist[i];
             var strSel = curcs.name == csDefault ? ' selected="selected"' : '';
             list += '<option' + strSel + '>' + curcs.name + '</option>';
         }
         csbox.innerHTML = list;
         qyinit();
     };

     var qyinit = function () {
         var list = '';
         var curqylist = provinceList[sfbox.selectedIndex].cityList[csbox.selectedIndex].areaList;
         for (var i = 0; i < curqylist.length; i++) {
             var curqy = curqylist[i];
             var strSel = curqy == qyDefault ? ' selected="selected"' : '';
             list += '<option' + strSel + '>' + curqy + '</option>';
         }
         qybox.innerHTML = list;
     };

     sfbox.onchange = function () {
         var list = '';
         var curcslist = provinceList[sfbox.selectedIndex].cityList;
         for (var i = 0; i < curcslist.length; i++) {
             var curcs = curcslist[i];
             list += '<option>' + curcs.name + '</option>';
         }
         csbox.innerHTML = list;
         cschange();
     };

     csbox.onchange = function () {
         cschange();
     };

     var cschange = function () {
         var list = '';
         var curqylist = provinceList[sfbox.selectedIndex].cityList[csbox.selectedIndex].areaList;
         for (var i = 0; i < curqylist.length; i++) {
             var curqy = curqylist[i];
             list += '<option>' + curqy + '</option>';
         }
         qybox.innerHTML = list;
     };

     sfinit();
 }

provinceList的结构:

原生JS 年月日、省市区 三级联动的更多相关文章

  1. 【原生js】原生js的省市区三级联动

    html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...

  2. 原生javascript制作省市区三级联动详细教程

    多级联动下拉菜单是前端常见的效果,省市区三级联动又属于其中最典型的案例.多级联动一般都是与数据相关联的,根据数据来生成和修改联动的下拉菜单.完成一个多级联动效果,有助于增强对数据处理的能力. 本实例以 ...

  3. 原生javascript实现省市区三级联动

    腾讯IP分享计划(http://ip.qq.com/)有个现成的三级联动功能,查看源码后发现可以直接使用其单独的JS文件(http://ip.qq.com/js/geo.js). 分析后发现自己需要写 ...

  4. js实现省市区三级联动

    电商平台或者一些网站的个人信息部分,通常会有填写地址的功能.该功能一般分为二级联动(省.市)和三级联动(省.市.区),只需要JavaScript就可以实现. 这里介绍一种很简洁易用的方法.参考地址:h ...

  5. JS(JQuery) 省市区三级联动下拉选择

    引入 area.js /* * 全国三级城市联动 js版 */ function Dsy(){ this.Items = {}; } Dsy.prototype.add = function(id,i ...

  6. angular.js实现省市区三级联动指令

    不多说,直接上代码,一开始搞了好久,最后才弄懂,希望对大家有帮助 1.jade div.col-md-2 select.form-control(ng-options="value.code ...

  7. JS实现年月日三级联动+省市区三级联动+国家省市三级联动

    开篇随笔:最近项目需要用到关于年月日三级联动以及省市区三级联动下拉选择的功能,于是乎网上搜了一些做法,觉得有一些只是给出了小的案例或者只有单纯的js还不完整,却很难找到详细的具体数据(baidu搜索都 ...

  8. vue 引用省市区三级联动(插件)

    vue 用省市区三级联动之傻瓜式教程(复制粘贴即用) npm 下载 npm install v-distpicker --save main.js //引入 省市区三级联动 import Distpi ...

  9. 原生JS实现省市区(县)三级联动选择

    原文地址→看过来 写在前面 前段时间写一个关于天气的东西,里面的省市区(县)城市选择让我很头疼,在网上搜索出来大都是借助插件或者第三方库,感觉这样做代码会很重,所以索性就把几种城市选择的方式实现一遍, ...

  10. 插件 原生js 省市区 三级联动 源码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. Webview和Html

    参考http://blog.csdn.net/chenzheng_java/article/details/6260872 <html><header> <title&g ...

  2. CSS & JS 制作滚动幻灯片

    ==================纯CSS方式==================== <!DOCTYPE html> <html> <head> <met ...

  3. em与px换算关系以及常用列表

    1.任意浏览器的默认字体大小都是16px.2.所有未经调整的浏览器都符合: 1em=16px 12px=0.75em 10px=0.625em3.为了简化font-size的换算,在body选择器中声 ...

  4. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  5. EF操作多数据库

    1.Account3_Register_DB_Model作为(空)模板库,根据此模板生成的其他数据除了数据库名称不一样,其他表,视图,字段等等都一致 2.Account3_Platform_Maste ...

  6. javase-->多线程--线程池

    java的线程池理解 在面向对象编程中,对象创建和销毁是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源.在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收. ...

  7. webuploader在IE8/9下上传遇到的两个问题

    最近在做图片上传功能. 点击一个按钮,弹出一个iframe,它是百度的webuploader插件 在点击关闭按钮时,IE9下总是会报错: __flash__removeCallback未定义错误 解决 ...

  8. Java基础学习(三)

    /* java中的八种基本数据类型: 整数: byte . short . int . long 小数: float double 字符: char 布尔: boolean 字符串的类型: Strin ...

  9. JavaScript 字符串处理详解

    一.创建字符串       创建一个字符串,将一组字符串用引号包起来,将其赋值给一个字符串变量. var JsStr="Hello,JavaScript String!"; 二.字 ...

  10. <HTML>菜鸟入门基础须知

    将持续更新-- 一,基础常用标签and属性 既然要学习这门知识,那必须得先知道这是什么能做什么,HTML:是一种超文本标记语言,什么意思呢,我拆开看一下,超(超链接)文本(犹如TXT)标记(改变成自己 ...