读书人

发一个在前辈基础上修改的下拉时间代码

发布时间: 2012-02-12 17:16:34 作者: rapoo

发一个在前辈基础上修改的下拉时间代码(2个选择时间,到小时),好的话给顶一下
<html>
<head>

<script language= "JavaScript ">
function initDate() {
var obj=document.all[ 'dateform '];
var y=obj.year;
var m=obj.month;
var d=obj.date;
var h=obj.hour;
var y1=obj.year1;
var m1=obj.month1;
var d1=obj.date1;
var h1=obj.hour1;
var indexDate = new Date();
for (var i=2005;i <2050;i++) {
y.options.length=y.options.length+1;
y.options[y.options.length-1].text=y[y.options.length-1].value=i;
}
for (var i=2005;i <2050;i++) {
y1.options.length=y1.options.length+1;
y1.options[y1.options.length-1].text=y1[y1.options.length-1].value=i;
}
y.value=2007;
for (var i=0;i <12;i++) {
m.options.length=i+1;
m[i].value=i+1;
m.options[i].text=i+1;
}
m.value=1;
for (var i=0;i <12;i++) {
m1.options.length=i+1;
m1[i].value=i+1;
m1.options[i].text=i+1;
}
for (var i=0;i <31;i++) {
d.options.length=i+1;
d[i].value=i+1;
d.options[i].text=i+1;
}
d.value=1;
y1.value = indexDate.getYear();
m1.value = indexDate.getMonth() + 1;
var arrd = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if (y1.value % 4 == 0) arrd[1] = 29;
var md = arrd[m1.value - 1];


for (var i = 0; i < md; i++) {
d1.options.length=i+1;
d1[i].value=i+1;
d1.options[i].text=i+1;
}
d1.value = indexDate.getDate();
for (var i=0;i <24;i++) {
h.options.length=i+1;
h[i].value=i;
h.options[i].text=i;
}
h.value=0;
for (var i=0;i <24;i++) {
h1.options.length=i+1;
h1[i].value=i;
h1.options[i].text=i;
}
h1.value=0;
}
function setDate(obj) {
var y=obj.year.value;
var m=obj.month.value;
var d=obj.date;
var arrd=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if (y%4==0) arrd[1]=29;
var md=arrd[m-1];
if (d.options.length> md) {
var index=d.value;
d.options.length=md;
if (index <md) {
d.value=index;
} else {
d.value=md;
}
}
if (d.options.length <md) {
for (var i=d.options.length;i <md;i++) {
d.options.length=d.options.length+1;
d[i].value=d.options[i].text=i+1;
}
}
}
function setDate1(obj) {
var y1=obj.year1.value;
var m1=obj.month1.value;
var d1=obj.date1;
var arrd=new Array(31,28,31,30,31,30,31,31,30,31,30,31);


if (y1%4==0) arrd[1]=29;
var md=arrd[m1-1];
if (d1.options.length> md) {
var index=d1.value;
d1.options.length=md;
if (index <md) {
d1.value=index;
} else {
d1.value=md;
}
}
if (d1.options.length <md) {
for (var i=d1.options.length;i <md;i++) {
d1.options.length=d1.options.length+1;
d1[i].value=d1.options[i].text=i+1;
}
}
}
</script>

</head>
<body onLoad= "initDate() ">
<form name= "dateform ">
<select name= "year " onChange= "setDate(this.form) "> </select> 年
<select name= "month " onChange= "setDate(this.form) "> </select> 月
<select name= "date "> </select> 日
<select name= "hour " onChange= "setDate(this.form) "> </select> 点
<select name= "year1 " onChange= "setDate1(this.form) "> </select> 年
<select name= "month1 " onChange= "setDate1(this.form) "> </select> 月
<select name= "date1 "> </select> 日
<select name= "hour1 " onChange= "setDate1(this.form) "> </select> 点
</form>
</body>

</html>


[解决办法]
简单月日联动:
<form>
<select name= "y " id= "y "> </select> 年
<select name= "m " onChange= "setday($( 'y ').value,$( 'm ').value, 'd ') "> </select> 月
<select name= "d "> </select> 日
</form>
<script type= "text/javascript ">
//这里是获取ID的函数
function $(obj){return document.getElementById(obj);}
//这里是联动
function setday(y,m,objid){
var day_num;
if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12){


day_num=31;
}else if(m==4 || m==6 || m==9 || m==11){
day_num=30;
}else{
day_num=y%4==0?(y%100==0?(y%400==0?28:29):28):29;
}
obj=$( 'd ');
obj.length = 0;
for(var i=1;i <=day_num;i++)obj.options[obj.length] = new Option(i,i, ' ', ' ');
}
//这里设置年
for(var i=2000;i <=2050;i++)$( 'y ').options[$( 'y ').length] = new Option(i,i, ' ', ' ');
//这里设置月
for(var i=1;i <=12;i++)$( 'm ').options[$( 'm ').length] = new Option(i,i, ' ', ' ');
</script>

读书人网 >ASP

热点推荐