2011-08-31[年月日3級級聯js代碼]

function YYYYMMDDstart() {
    document.getElementById("ddlYear").options.add(new Option("請選擇", ""));
    document.getElementById("ddlMonth").options.add(new Option("請選擇" , ""));
    document.getElementById("ddlDay").options.add(new Option("請選擇", ""));
    MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    //先給年下拉框賦內容
    var y = new Date().getFullYear();
    for (var i = (y - 100); i < y ; i++) //以今年爲準,前30年,後30年
        document.getElementById("ddlYear").options.add(new Option(" " + i + " 年", i));
    //賦月份的下拉框
    for (var i = 1; i < 13; i++)
        document.getElementById("ddlMonth").options.add(new Option(" " + i + " 月", i));
    document.getElementById("ddlYear").value = y;
    document.getElementById("ddlMonth").value = new Date().getMonth() + 1;
    var n = MonHead[new Date().getMonth()];
    if (new Date().getMonth() == 1 && IsPinYear(YYYYvalue)) n++;
    writeDay(n); //賦日期下拉框Author:meizz
    document.getElementById("ddlDay").value = new Date().getDate();
    $("#ddlYear").val("");
    $("#ddlMonth").val("");
    $("#ddlDay").val("");
}
//if (document.attachEvent)
//    window.attachEvent("onload", YYYYMMDDstart);
//else
//    window.addEventListener('load', YYYYMMDDstart, false);
function YYYYDD(str) //年發生變化時日期發生變化(主要是判斷閏平年)
{
    var MMvalue = document.getElementById("ddlMonth").options[document.getElementById("ddlMonth").selectedIndex].value;
    if (MMvalue == "") { var e = document.getElementById("ddlDay"); optionsClear(e); return; }
    var n = MonHead[MMvalue - 1];
    if (MMvalue == 2 && IsPinYear(str)) n++;
    writeDay(n);
}
function MMDD(str) //月發生變化時日期聯動
{
    var YYYYvalue = document.getElementById("ddlYear").options[document.getElementById("ddlYear").selectedIndex].value;
    if (YYYYvalue == "") { var e = document.getElementById("ddlDay"); optionsClear(e); return; }
    var n = MonHead[str - 1];
    if (str == 2 && IsPinYear(YYYYvalue)) n++;
    writeDay(n);
}
function writeDay(n) //據條件寫日期的下拉框
{
    var e = document.getElementById("ddlDay"); optionsClear(e);
    for (var i = 1; i < (n + 1); i++)
        e.options.add(new Option(" " + i + " 日", i));
}
function IsPinYear(year)//判斷是否閏平年
{ return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0)); }
function optionsClear(e) {
    e.options.length = 1;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章