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 相关文章推荐
javascript中创建对象的三种常用方法
Dec 30 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
jquery.post用法关于type设置问题补充
Jan 03 Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 Javascript
javascript实时获取鼠标坐标值并显示的方法
Apr 30 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
jQuery实现简单隔行变色的方法
Feb 20 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
jQuery实现复制到粘贴板功能
Feb 11 Javascript
微信小程序自定义导航隐藏和显示功能
Jun 13 Javascript
JavaScript常见JSON操作实例分析
Aug 08 Javascript
JS通过位运算实现权限加解密
Aug 14 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
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
Angularjs 基础入门
2014/12/26 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python生成器(Generator)详解
2015/04/13 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
Python如何批量生成和调用变量
2020/11/21 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
小学老师寄语大全
2014/04/04 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
商铺消防安全责任书
2014/07/29 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
云台山导游词
2015/02/03 职场文书
保护校园环境倡议书
2015/04/28 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
nginx 配置指令之location使用详解
2022/05/25 Servers