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;
}
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.