js文件

SYT="-请选择年份-";
SMT="-请选择月份-";
SDT="-请选择日期-";
BYN=50;//年份范围往前50年
AYN=5;//年份范围往后0年
function YMDselect(){
this.SelY=document.getElementsByName(arguments[0])[0];
this.SelM=document.getElementsByName(arguments[1])[0];
this.SelD=document.getElementsByName(arguments[2])[0];
this.DefY=this.SelD?arguments[3]:arguments[2];
this.DefM=this.SelD?arguments[4]:arguments[3];
this.DefD=this.SelD?arguments[5]:arguments[4];
this.SelY.YMD=this;
this.SelM.YMD=this;
this.SelY.onchange=function(){YMDselect.SetM(this.YMD)};
if(this.SelD)this.SelM.onchange=function(){YMDselect.SetD(this.YMD)};
YMDselect.SetY(this)
};
//设置年份
YMDselect.SetY=function(YMD){
dDate = new Date();
dCurYear = dDate.getFullYear();
YMD.SelY.options.add(new Option(SYT,'0'));
for(i = dCurYear+AYN; i>(dCurYear-BYN); i--){
YMDYT=i+'年';
YMDYV=i;
OptY = new Option(YMDYT,YMDYV);
YMD.SelY.options.add(OptY);
if(YMD.DefY==YMDYV) OptY.selected=true
}
YMDselect.SetM(YMD)
};
//设置月份
YMDselect.SetM=function(YMD){
YMD.SelM.length = 0;
YMD.SelM.options.add(new Option(SMT,'0'));
if(YMD.SelY.value>0){
for(var i=1;i<=12;i++){
YMDMT=i+'月';
YMDMV=i;
OptM=new Option(YMDMT,YMDMV);
YMD.SelM.options.add(OptM);
if(YMD.DefM==YMDMV) OptM.selected=true
}
}
if(YMD.SelD)YMDselect.SetD(YMD)
};
//设置日期
YMDselect.SetD=function(YMD){
YI=YMD.SelY.value;
MI=YMD.SelM.value;
YMD.SelD.length = 0;
YMD.SelD.options.add(new Option(SDT,'0'));
if(YI>0 && MI>0){
dPrevDate = new Date(YI, MI, 0);
daysInMonth=dPrevDate.getDate();
for (d = 1; d <= parseInt(daysInMonth); d++) {
YMDDT=d+'日';
YMDDV=d;
OptD=new Option(YMDDT,YMDDV);
YMD.SelD.options.add(OptD);
if(YMD.DefD==YMDDV)OptD.selected=true
}
}
}

html文件

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js年月日三级联动</title>
<script src ="js\YYYYMMDDClass.js"></script>
</head> <body > <form action="" style="" method="get">
<span>Birthday: </span>
<select name="year"></select>
<select name="month"></select>
<select name="day"></select>
<br>
<button type="submit" value="submit">submit</button>
<script>
/**
* 年月联动
* new YMDselect('year','month');
* new YMDselect('year','month',2010);//默认2010
*new YMDselect('year','month',2010,2);//2010 2
* */ /**
* 年月日联动
* new YMDselect('year','month','day1');
*new YMDselect('year','month','day1',2020);默认20020年
* new YMDselect('year','month','day1',2020,6);默认20020年6月
* new YMDselect('year','month','day',2020,6,22); 默认20020年6月22日
* */
new YMDselect('year','month','day'); </script> </form>
</body>
</html>

JavaScript 用法

1.js文件外联

<head>
<script src ="js\YYYYMMDDClass.js"></script>
</head>

2.直接用

<head>
<script>
alert("我的第一个 JavaScript");
</script>
</head>

3.在body中用

<!DOCTYPE html>
<html>
<body>
.
.
<script>
document.write("<h1>这是一个标题</h1>");
document.write("<p>这是一个段落</p>");
</script>
.
.
</body>
</html>

更多用法请访问W3CSchool

JS 实现的年月日三级联动的更多相关文章

  1. JS年月日三级联动下拉框日期选择代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

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

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

  3. 利用select实现年月日三级联动的日期选择效果

    × 目录 [1]演示 [2]规划 [3]结构生成[4]算法处理 前面的话 关于select控件,可能年月日三级联动的日期选择效果是最常见的应用了.本文是选择框脚本的实践,下面将对日期选择效果进行详细介 ...

  4. 时间操作(JavaScript版)—年月日三级联动(默认显示系统时间)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35263317         这个功能 ...

  5. js实现年月日三级联动

    当我们注册一个qq的时候,会看到一个三级年月日的联动菜单,下面简单介绍. <!doctype html> <html lang="en"> <head ...

  6. js 实现全国省市区三级联动

    效果: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /& ...

  7. js之省市区(县)三级联动效果

    省市区(县)三级联动效果,是我们软件开发比较常用的,特别是对一些crm,erp之类,当然也包括其他的后台管理系统,基本都涉及到,今天贴出这个常用的,方便个人复用和大家使用 <!DOCTYPE h ...

  8. HTML5 UI 控件Mobiscroll的使用(年月日三级联动)

    概述: 遇到制作一个html5界面,需要选择年月日,其实这个功能很常用.一般我们都是网上找,之前也没有收藏一个自己常用的,今天发现一个不错的库.特此记录一下使用过程,以便以后遇到了方面查阅. 1.官方 ...

  9. jQuery:年月日三级联动

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs ...

随机推荐

  1. HTML5总结

    HTML的定义 HyperText Markup Language 超文本标记语言 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准, 它通过标记符号来标记要显示的网页中的各个部 ...

  2. MySQL SHOW TABLE 输出的每列详细介绍

    Name: 表名 Engine: 表的存储引擎(旧版本中,该值为Type) Row_format: 行的格式.对于MyISAM表,可选的值为Dynamic.Fixed或者Copressed. Dyna ...

  3. 读《图解HTTP》有感-(返回结果的HTTP状态码)

    写在前面 HTTP状态码是由服务端产生,用于告诉客户端,服务端处理结果的编码 正文 1.状态码的作用是什么?具有什么特征? 状态码的作用是当客户端向服务器发送请求时,描述服务器的响应结果(如:服务器正 ...

  4. ELK 架构之 Logstash 和 Filebeat 安装配置

    上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日 ...

  5. PAT1021:Deepest Root

    1021. Deepest Root (25) 时间限制 1500 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A graph ...

  6. mysql explain rows理解

    在MySQL性能调试中,常常使用EXPLAIN解释MySQL执行计划,从而用来估算性能耗时.其中,rows用来表示在SQL执行过程中会被扫描的行数,该数值越大,意味着需要扫描的行数,相应的耗时更长.但 ...

  7. EXCEL解析之终极方法WorkbookFactory

    Selenium做自动化测试当然不能避免和Excel打交道. 由于Excel版本的关系,文件扩展名分xls和xlsx, 以往的经验都是使用HSSFWorkbook和XSSFWorkbook来分别处理. ...

  8. TSL1401线性CCD TM32F103开发平台移植源代码

    Technorati Tags: stm32 模块资料 对于线性CCD而言,开发着更多的是基于飞思卡尔系列单片机进行开发,前几天在做项目的时候需要用到该传感器,故使用了蓝宙CCD的驱动历程,然后对蓝宙 ...

  9. ROC曲线的计算

    1.ROC曲线简介 在评价分类模型时,会用到ROC(receiver operating characteristic)曲线.ROC曲线可用来评价二元分类器( binary classifier)的优 ...

  10. 常用的HTML富文本编译器UEditor、CKEditor、TinyMCE、HTMLArea、eWebEditor、KindEditor简介

    1.UEditor UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于BSD协议,允许自由使用和修改代码... 主要特点: 轻量级: ...