首頁  >  文章  >  web前端  >  一個日期下拉選單的js實作程式碼_時間日期

一個日期下拉選單的js實作程式碼_時間日期

WBOY
WBOY原創
2016-05-16 17:49:241058瀏覽
1.先看效果圖:
一個日期下拉選單的js實作程式碼_時間日期
2.js程式碼
year_month_day.js
year_month_day.js 複製程式碼

程式碼如下:


year_month_day.js
function DateSelector(selYear, selMonth, DayDay) {this this.selMonth = selMonth;
this.selDay = selDay;
this.selYear.Group = this;
this.selMonth.Group = this;
// 給年份、年份、月份下拉式選單加入處理onchange事件的函數
if (window.document.all != null) // IE
{
this.selYear.attachEvent("onchange", DateSelector.Onchange);
this.selMonth.attachEvent("onchange", DateSelector.Onchange);
}
else // Firefox
{
this.selYear.addEventListener("change", DateSelector.Onchange, false);
this.selMonth.addEventListener("change", DateSelector.Onchange, false);
}
if (arguments.length == 4) // 若傳入參數數量為4,則最後一個參數必須為Date物件
this.InitSelector(arguments[3].getFullYear(), arguments[3].getMonth() 1, arguments[3].getDate());
else if (arguments.length = = 6) // 若傳入參數個數為6,最後三個參數必須為初始的年月日數值
this.InitSelector(arguments[3], arguments[4], arguments[5]);
else // 預設使用當前日期
{
var dt = new Date();
this.InitSelector(dt.getFullYear(), dt.getMonth() 1, dt.getDate()) ;
}
}
// 增加一個最大年份的屬性
DateSelector.prototype.MinYear = 1900;
// 增加一個最大年份的屬性
DateSelector.prototype.MaxYear = (new Date()).getFullYear();
// 初始化年份
DateSelector.prototype.InitYearSelect = function () {
// 循環新增OPION元素到年份select物件
for🎜>// 循環新增OPION元素到年份select物件中
for🎜>for (var i = this.MaxYear; i >= this.MinYear; i--) {
// 新建一個OPTION物件
var op = window.document.createElement("OPTION");
/ / 設定OPTION物件的值
op.value = i;
// 設定OPTION物件的內容
op.innerHTML = i;
// 新增至年份select物件
this.selYear .appendChild(op);
}
}
// 初始化月份
DateSelector.prototype.InitMonthSelect = function () {
// 9IONOPION元素到月份循環加入物件
for (var i = 1; i // 新建一個OPTION物件
var op = window.document.createElement("OPTION");
// 設定OPTION物件的值
op.value = i;
// 設定OPTION物件的內容
op.innerHTML = i;
// 新增至月份select物件
this.selMonth.appendChild(op) ;
}
}
// 依年份與月份取得當月的天數
DateSelector.DaysInMonth = function (year, month) {
var date = new Date(year, month, 0 );
return date.getDate();
}
// 初始化天數
DateSelector.prototype.InitDaySelect = function () {
// 使用parseInt函數取得目前的年份和月份
var year = parseInt(this.selYear.value);
var month = parseInt(this.selMonth.value);
// 取得當月的天數
var daysInMonth = DateSelector。 , month);
// 清空原有的選項
this.selDay.options.length = 0;
// 循環加入OPION元素到天數select物件中
for (var i = 1 ; i // 新建一個OPTION物件
var op = window.document.createElement("OPTION");
// 設定OPTION物件的值
op. value = i;
// 設定OPTION物件的內容
op.innerHTML = i;
// 新增到天數select物件
this.selDay.appendChild(op);
}
}
// 處理年份和月份onchange事件的方法,它取得事件來源物件(即selYear或selMonth)
// 並呼叫它的Group物件(即DateSelector實例,請參閱建構子)提供的InitDaySelect方法重新初始化天數
// 參數e為event物件
DateSelector.Onchange = function (e) {
var selector = window.document.all != null ? e.srcElement : e.target ;
selector.Group.InitDaySelect();
}
// 依參數初始化下拉式選單選項
DateSelector.prototype.InitSelector = function (year, month, day) {
//由於外部是可以呼叫這個方法,因此我們在這裡也要將selYear和selMonth的選項清空掉
// 另外因為InitDaySelect方法已經有清空天數下拉選單,因此這裡就不用重複工作了
this. selYear.options.length = 0;
this.selMonth.options.length = 0;
// 初始化年、月
this.InitYearSelect();
this.InitMonthSelect(); // 設定年、月初始值
this.selYear.selectedIndex = this.MaxYear - year;
this.selMonth.selectedIndex = month - 1;
// 初始化天數
this.InitDaySelect ();
// 設定天數初始值
this.selDay.selectedIndex = day - 1;
}
3.HTML程式碼
year_month_day.htm
複製程式碼



複製程式碼



複製程式碼



複製碼>

year_month_day.htm




陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn