js出生日期 年月日级联菜单示例代码


Posted in Javascript onJanuary 10, 2014

现在世界通用的公历(阳历)也经过一个长期演变的过程。我们先看,公历每个月的日数是固定的:"七前单大,八后双大"。也就是说,一、三、五、七、八、十、腊月(十二月)是31天,四、六、九、十一月是30天,只有二月,平年28天,闰年29天。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   <select name=YYYY id="YYYY" onchange="YYYYMM(this.value)">
        <option value="">选择 年</option>
    </select>
    <select name=MM id="MM" onchange="MMDD(this.value)">
        <option value="">选择 月</option>
    </select>
    <select name=DD id="DD">
        <option value="">选择 日</option>
    </select>
    </div>
    <asp:HiddenField ID="hfValue" runat="server" />
    <asp:Button ID="btnSave" runat="server" Text="保存" onclick="btnSave_Click" />
    </form>
</body>
</html>
<script language="JavaScript"> 
<!--
    function getValue() {
        var year = document.getElementById("YYYY").options[document.getElementById("YYYY").selectedIndex].value;
        var month = document.getElementById("MM").options[document.getElementById("MM").selectedIndex].value;
        var day = document.getElementById("DD").options[document.getElementById("DD").selectedIndex].value;
        document.getElementById("hfValue").value = year+"-"+month+"-"+day;
    }
window.onload=function() {
    strYYYY = document.form1.YYYY.outerHTML;
    strMM = document.form1.MM.outerHTML;
    strDD = document.form1.DD.outerHTML;
    MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    //先给年下拉框赋内容
    var y = new Date().getFullYear();
    var str = strYYYY.substring(0, strYYYY.length - 9);
    for (var i = (y - 80); i < (y + 2); i++) //以今年为准,前30年,后30年
    {
        str += "<option value='" + i + "'> " + i + " 年" + "</option>\r\n";
    }
    document.form1.YYYY.outerHTML = str + "</select>";
    //赋月份的下拉框
    var str = strMM.substring(0, strMM.length - 9);
    for (var i = 1; i < 13; i++) {
        str += "<option value='" + i + "'> " + i + " 月" + "</option>\r\n";
    }
    document.form1.MM.outerHTML = str + "</select>";
    document.form1.YYYY.value = y;
    document.form1.MM.value = new Date().getMonth() + 1;
    var n = MonHead[new Date().getMonth()];
    if (new Date().getMonth() == 1 && IsPinYear(YYYYvalue)) n++;
    writeDay(n); //赋日期下拉框
    document.form1.DD.value = new Date().getDate();
}
function YYYYMM(str) //年发生变化时日期发生变化(主要是判断闰平年)
{
    var MMvalue = document.form1.MM.options[document.form1.MM.selectedIndex].value;
    if (MMvalue == "") {
        DD.outerHTML = strDD;
        return;
    }
    var n = MonHead[MMvalue - 1];
    if (MMvalue == 2 && IsPinYear(str)) n++;
    writeDay(n)
}
function MMDD(str) //月发生变化时日期联动
{
    var YYYYvalue = document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value;
    if (str == "") {
        DD.outerHTML = strDD;
        return;
    }
    var n = MonHead[str - 1];
    if (str == 2 && IsPinYear(YYYYvalue)) n++;
    writeDay(n)
}
function writeDay(n) //据条件写日期的下拉框
{
    var s = strDD.substring(0, strDD.length - 9);
    for (var i = 1; i < (n + 1); i++) s += "<option value='" + i + "'> " + i + " 日" +
"</option>\r\n";
    document.form1.DD.outerHTML = s + "</select>";
}
function IsPinYear(year) //判断是否闰平年
{
    return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0))
}
//-->
</script>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            btnSave.Attributes.Add("onclick", "getValue()");
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Response.Write(hfValue.Value);
        }
    }
}
Javascript 相关文章推荐
响应鼠标变换表格背景或者颜色的代码
Mar 30 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 Javascript
简述Jquery与DOM对象
Jul 10 Javascript
javascript省市区三级联动下拉框菜单实例演示
Nov 29 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
Dec 08 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
JS实现根据出生年月计算年龄
Jan 10 #Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 #Javascript
javascript通过className来获取元素的简单示例代码
Jan 10 #Javascript
深入理解JSON数据源格式
Jan 10 #Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 #Javascript
Script标签与访问HTML页面详解
Jan 10 #Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 #Javascript
You might like
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
浅谈PHP中的
2016/04/23 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
基于vue2.0动态组件及render详解
2018/03/17 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
Python实现的排列组合计算操作示例
2017/10/13 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
python range实例用法分享
2020/02/06 Python
浅谈django channels 路由误导
2020/05/28 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
敬老模范事迹
2014/05/21 职场文书
中职生求职信
2014/07/01 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
天那边观后感
2015/06/09 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android