使⽤html编写可以下拉的⽇期,WEB前端开发⽤Js实现⽇期下
拉菜单效果代码
//year_month_day.
function DateSelector(selYear, selMonth, selDay) {
this.selYear = selYear
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)
} // Firefox
else {
this.selYear.addEventListener(‘change’, DateSelector.Onchange, false)html下拉菜单的制作方法
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.FullYear(), dt.getMonth() + 1, dt.getDate())
}
}
// 增加⼀个最⼤年份的属性
DateSelector.prototype.MinYear = 1900
// 增加⼀个最⼤年份的属性
DateSelector.prototype.MaxYear = new Date().getFullYear() // 初始化年份
DateSelector.prototype.InitYearSelect = function() {
// 循环添加OPION元素到年份select对象中
for (var i = this.MaxYear; i >= this.MinYear; i–) {
// 新建⼀个OPTION对象
var op = ateElement(‘OPTION’)
/
/ 设置OPTION对象的值
op.value = i
// 设置OPTION对象的内容
op.innerHTML = i
// 添加到年份select对象
this.selYear.appendChild(op)
}
}
// 初始化⽉份
DateSelector.prototype.InitMonthSelect = function() {
// 循环添加OPION元素到⽉份select对象中
for (var i = 1; i < 13; i++) {
// 新建⼀个OPTION对象
var op = ateElement(‘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)
Date()
}
// 初始化天数
DateSelector.prototype.InitDaySelect = function() {
// 使⽤parseInt函数获取当前的年份和⽉份
var year = parseInt(this.selYear.value)
var month = parseInt(this.selMonth.value)
// 获取当⽉的天数
var daysInMonth = DateSelector.DaysInMonth(year, month)
// 清空原有的选项
this.selDay.options.length = 0
// 循环添加OPION元素到天数select对象中
for (var i = 1; i <= daysInMonth; i++) {
// 新建⼀个OPTION对象
var op = ateElement(‘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
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论