<html><body onload="changeDays();">
<form action="" method=get>
<select name=year onchange="changeDays()" >
<option value=2000>2000<option value=2001>2001<option value=2002>2002<option value=2003>2003
</select>
<select name=month onchange="changeDays()">
<option value=0>1<option value=1>2<option value=2>3<option value=3>4
</select>
<select name=day >
<option value=1>1
<option value=2>2
<option value=3>3
<option value=4>4
<option value=5>5
<option value=6>6
<option value=7>7
<option value=8>8
<option value=9>9
<option value=10>10
<option value=11>11
<option value=12>12
<option value=13>13
<option value=14>14
<option value=15>15
<option value=16>16
<option value=17>17
<option value=18>18
<option value=19>19
<option value=20>20
<option value=21>21
<option value=22>22
<option value=23>23
<option value=24>24
<option value=25>25
<option value=26>26
<option value=27>27
<option value=28>28
<option value=29>29
<option value=30>30
<option value=31>31
</select>
<a href="about:blank">about:blank</a>
</form>
</body></html>
<script language=javascript>
function changeDays()
{
var theMonthDays=(new Date(document.all.year.value,document.all.month.value*1+1,0)).getDate();
for(var i=29;i<=theMonthDays;i++)
{
if(!document.all.day.options[i-1])
{
var newOption=new Option(i,i);
document.all.day.add(newOption);
}
}
for(var i=document.all.day.length;i>theMonthDays;i--)
{
document.all.day.remove(i-1);
}
}</script>
<form action="" method=get>
<select name=year onchange="changeDays()" >
<option value=2000>2000<option value=2001>2001<option value=2002>2002<option value=2003>2003
</select>
<select name=month onchange="changeDays()">
<option value=0>1<option value=1>2<option value=2>3<option value=3>4
</select>
<select name=day >
<option value=1>1
<option value=2>2
<option value=3>3
<option value=4>4
<option value=5>5
<option value=6>6
<option value=7>7
<option value=8>8
<option value=9>9
<option value=10>10
<option value=11>11
<option value=12>12
<option value=13>13
<option value=14>14
<option value=15>15
<option value=16>16
<option value=17>17
<option value=18>18
<option value=19>19
<option value=20>20
<option value=21>21
<option value=22>22
<option value=23>23
<option value=24>24
<option value=25>25
<option value=26>26
<option value=27>27
<option value=28>28
<option value=29>29
<option value=30>30
<option value=31>31
</select>
<a href="about:blank">about:blank</a>
</form>
</body></html>
<script language=javascript>
function changeDays()
{
var theMonthDays=(new Date(document.all.year.value,document.all.month.value*1+1,0)).getDate();
for(var i=29;i<=theMonthDays;i++)
{
if(!document.all.day.options[i-1])
{
var newOption=new Option(i,i);
document.all.day.add(newOption);
}
}
for(var i=document.all.day.length;i>theMonthDays;i--)
{
document.all.day.remove(i-1);
}
}</script>
解决方案 »
- iframe里focus导致parent里的顶部内容被隐藏?
- 怎么修改函数的内容
- treenode.getattribute("Text") 获取后 怎么把他转换成字符串,强行的
- 如何用javascript控制浏览器的编码?谁给我答案,我给谁100分.
- javascript如何接收地址栏(url)中所传的参数
- 一个比较复杂的涵数,预计送两百分~本贴100分,另开贴送100分~
- 解释一下正则表达式!
- 在JS 中怎样象 C 那样按引用传递一个变量的值???
- <div>的position属性可以取那些值?
- 如何用正则表达式在字符串中筛选\"modifiedDate\":new Date(1347448176000)这段字符串并替换为空格。
- 奇怪问题,一个通宵没搞定!不能创建对象?
- 如何判断textarea中的值是否为空?
1, var newOption=new Option(i,i);
document.all.day.add(newOption);
是什么意思?还有,OPTION是通用的属性吗?
2,对于非31天的月,为什么要将他的值先ADD然后在REMOVE呢?
--------------<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>年月日Select</title>
</head><body onload="changeDays();">
<form action="" method=get>
年月日选择框:<br>
<select name=year onchange="changeDays()" >
<option value=2000>2000<option value=2001>2001<option value=2002>2002<option value=2003>2003
</select>
<select name=month onchange="changeDays()">
<option value=0>1<option value=1>2<option value=2>3<option value=3>4<option value=11>12
</select>
<select name=day >
<option value=1>1
<option value=2>2
<option value=3>3
<option value=4>4
<option value=5>5
<option value=6>6
<option value=7>7
<option value=8>8
<option value=9>9
<option value=10>10
<option value=11>11
<option value=12>12
<option value=13>13
<option value=14>14
<option value=15>15
<option value=16>16
<option value=17>17
<option value=18>18
<option value=19>19
<option value=20>20
<option value=21>21
<option value=22>22
<option value=23>23
<option value=24>24
<option value=25>25
<option value=26>26
<option value=27>27
<option value=28>28
<option value=29>29
<option value=30>30
<option value=31>31
</select><br>
<a href="about:blank">about:blank</a>
</form>
</body></html>
<script language=javascript>
function changeDays()
{
var theMonthDays=(new Date(document.all.year.value,document.all.month.value*1+1,0)).getDate(); //得到该月份的天数
if(document.all.day.value>theMonthDays)
document.all.day.value=theMonthDays; //如果日期过大,则选择最大可能日期
for(var i=document.all.day.length+1;i<=theMonthDays;i++) //加上不足的天option
{
var newOption=new Option(i,i); //创建一个option
document.all.day.add(newOption); //向select里加一个option
}
for(var i=document.all.day.length;i>theMonthDays;i--) //删除多余的天option
{
document.all.day.remove(i-1);
}
}
</script>
请教最后一个问题:
var theMonthDays=(new Date(document.all.year.value,document.all.month.value*1+1,0)).getDate(); if(document.all.day.value>theMonthDays)
document.all.day.value=theMonthDays; for(var i=document.all.day.length+1;i<=theMonthDays;i++) //加上不足的天option
{
var newOption=new Option(i,i); //创建一个option
document.all.day.add(newOption); //向select里加一个option
}
怎么感觉这段代码不会执行?因为如果theMonthDays为31的话,循环会退出,而如果不是31的话,theMonthDays肯定小于31,那么这个循环也不会被执行。请高手指教!
-----------
月份从二月变到三月时,这段代码就会执行
在返回页面时,会得上次所选择的值,
如果day选择里的options是在onload之后才有,或是在页面的操作过程中使用了day.outerHTML=str..,
则不会记得上次所选择的值。以下
前两种情况都有记得上次所选择的值,
但第三种情况却不会。情况1:----------------------------------
<select name=day >
<script language=javascript>
for(var i=1;i<32;i++)
document.write("<option value='"+i+"'>"+i);
</script>
</select>情况2:----------------------------------
<select name=day >
<option value=1>1
<option value=2>2
<option value=3>3
<option value=4>4
<option value=5>5
<option value=6>6
<option value=7>7
<option value=8>8
<option value=9>9
<option value=10>10
<option value=11>11
<option value=12>12
<option value=13>13
<option value=14>14
<option value=15>15
<option value=16>16
<option value=17>17
<option value=18>18
<option value=19>19
<option value=20>20
<option value=21>21
<option value=22>22
<option value=23>23
<option value=24>24
<option value=25>25
<option value=26>26
<option value=27>27
<option value=28>28
<option value=29>29
<option value=30>30
<option value=31>31
</select>
情况3:----------------------------------
<body onload=initFun()>
<select name=day >
</select>
</body>
<script language=javascript>
function initFun()
{
//向day里加31个option.
}
</script>