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 相关文章推荐
各种常用浏览器getBoundingClientRect的解析
May 21 Javascript
angular.element方法汇总
Jan 07 Javascript
js实现进度条的方法
Feb 13 Javascript
javascript中的3种继承实现方法
Jan 27 Javascript
node.js 动态执行脚本
Jun 02 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
vue.js购物车添加商品组件的方法
Sep 17 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 Javascript
js实现秒表计时器
Dec 16 Javascript
JavaScript实现联动菜单特效
Jan 07 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
jQuery实现日历效果
Sep 11 jQuery
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
PHP4之真OO
2006/10/09 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
php处理带有中文URL的方法
2016/07/11 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
javascript面向对象编程代码
2011/12/19 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
python快排算法详解
2019/03/04 Python
Python的Lambda函数用法详解
2019/09/03 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
css sprite简单实例
2016/05/23 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
单位消防安全制度
2014/01/12 职场文书
教师一岗双责责任书
2014/04/16 职场文书
网站创业计划书
2014/04/30 职场文书
实习护士自荐信
2014/06/21 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
道歉情书大全
2015/05/12 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL