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 相关文章推荐
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
layui table数据修改的回显方法
Sep 04 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 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实现根据时间戳获取周几的方法
2016/02/26 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
jQuery 性能优化指南(3)
2009/05/21 Javascript
jquery对表单操作2
2011/04/06 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
js实现简单的验证码
2015/12/25 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
玩转python爬虫之正则表达式
2016/02/17 Python
python如何实现数据的线性拟合
2019/07/19 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python实现双色球随机选号
2020/01/01 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
公司人力资源的自我评价
2014/01/02 职场文书
会议欢迎标语
2014/06/30 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
大班下学期个人总结
2015/02/13 职场文书
单位政审意见范文
2015/06/04 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
vue使用echarts实现折线图
2022/03/21 Vue.js