javascript------一个类的年,月,日联动菜单
来源:互联网 发布:邮箱域名注册 编辑:程序博客网 时间:2024/05/17 09:43
<script>
function Calendar(startyear,endyear){
this.year = new Array()
var j=0
for(var i = startyear;i<=endyear;i++)
{this.year[j]=i;
j++}
this.month=[1,2,3,4,5,6,7,8,9,10,11,12]
this.day=[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]]
}
Calendar.prototype.Createselect=function(){
var sele1 = document.createElement("select")
sele1.id="year"
document.body.appendChild(sele1)
var sele2 = document.createElement("select")
sele2.id="month"
document.body.appendChild(sele2)
var sele3 = document.createElement("select")
sele3.id="day"
document.body.appendChild(sele3)
this.Isyear(this.year[0])
this.Initialization()
this.addmonth()
this.addyear()
}
Calendar.prototype.Initialization=function(){
for(var i= 0;i<this.year.length;i++)
{document.getElementById("year").options.add(new Option(this.year[i],i))}
for(var i= 0;i<this.month.length;i++)
{document.getElementById("month").options.add(new Option(this.month[i],i))}
for(var i= 0;i<this.day[0].length;i++)
{document.getElementById("day").options.add(new Option(this.day[0][i],i))}
}
Calendar.prototype.Isyear = function(year){
if (0==year%4&&((year%100!=0)||(year%400==0)))
{this.day[1]=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]}
else
{this.day[1]=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]}
}
Calendar.prototype.addyear = function(){
var obj = document.getElementById("year")
var me=this;
obj.attachEvent("onchange",function(){me.changeyear();})
}
Calendar.prototype.changeyear = function(e){
e =e||event
this.Isyear(this.year[event.srcElement.value])
document.getElementById("day").length=0
if(document.getElementById("day").length<30)
for(var i= 0;i<this.day[1].length;i++)
{document.getElementById("day").options.add(new Option(this.day[1][i],i))}
}
Calendar.prototype.addmonth = function(year){
var obj = document.getElementById("month")
var me=this;
obj.attachEvent("onchange",function(){me.changemonth();})
}
Calendar.prototype.changemonth = function(e){
e=e||event
document.getElementById("day").length=0
var nowday = this.day[e.srcElement.value]
for(var i=0;i<nowday.length;i++)
document.getElementById("day").options.add(new Option(nowday[i],i))
}
window.onload=function(){
var c = new Calendar(2000,2009)
c.Createselect()
}
</script>
刚开始写的时候出现了点问题,以前写类时创建的函数都是直接写方法的。
现在用的是attchEvent的方法 结果就出错了,生成的函数使用上是有规则的
暂时不是很懂为什么这样写,唉,写多了应该会慢慢明白的吧
- javascript------一个类的年,月,日联动菜单
- js生成二级城市联动菜单,动态生成年、月、日字段,生产一个验证码
- 请做一个年,月,日的联动菜单(选择年才可以选择月,选择月才可以选择日,并且2月的天数要正确)
- 一个实现省市菜单联动的JavaScript
- JavaScript实现年、月、日三下拉框联动
- 非常简单的javascript年-月-日三级联动下拉框
- Javascript语言用3个列表框(select)实现的年、月、日三级联动
- 用JavaScript写一个简单的二级联动菜单
- 年、月、日下拉菜单
- JAVAScript 实现的城市联动菜单
- 实现select菜单联动的javascript方案
- javascript 实现联动的下拉菜单
- javascript实现联动菜单
- javascript 菜单三级联动
- JavaScript + XML联动菜单
- 转载 javascript联动菜单
- javascript编写联动菜单
- JavaScript省市联动菜单
- 商刊:乔布斯坚信苹果可安全渡过经济衰退期
- GCC的__attribute__扩展功能
- 万事皆休,重头再来
- Ubuntu8.04常用命令
- SQLServer和Oracle数据锁定比较
- javascript------一个类的年,月,日联动菜单
- UrlRewriter技术简单运用
- JNI编程(Java访问C/C++ DLL)的大致步骤
- 强制IE8以IE7的模式浏览网页
- 用python访问sqlite
- SAAS在中国
- hibernate.cfg.xml连接Sql2000参考代码
- .Apache 2.0性能优化—MPM的选择与配置
- 宏利现金管理系统