输入日期之改进模式
当表单中含有日期输入时,以前的做法通常是由用户输入年月日,然后再对用户输入的数据进行校验。现在我要介绍的一种方法就是,让用户只能输入有效日期,从而无需再在客户端对日期的有效性进行检查。 function foption(N){ var i,N,str,M; str=""; for(i=1;i<=N;i++) {if(i<10) str="<option value='0"+i+"'>"+"0"+i+"</option>"; else str="<option value='"+i+"'>"+i+"</option>"; document.write(str); } }
function changeri(){ var nian,yue,ri; ri=31; yue=form1.selmonth .value ; if(yue=="04" || yue=="06" || yue=="09" || yue=="11") ri=30; if(yue=="02") {nian=form1.selyear.value; if((nian%4==0 && nian%100!=0) || nian%400==0) ri=29; else ri=28; } flen=form1.selday .length ; form1.selday.length =ri; i=flen+1; for(i;i<=ri;i++) { form1.selday .options(i-1).text=i; form1.selday .options(i-1).value=i; } }
以上两个函数是用来初始化表单和改变表单中日期的可选值的。如果你看懂了上面的程序,您稍作改动即可实现更大范围的年份的输入。下面是表单部分代码: <form name="form1" acrion="" method="post"> <select name="selyear" onchange="javascript:changeri();"> <script language="javascript">foption(12);</script> </select>年<select name="selmonth" onchange="javascript:changeri();"> <script language="javascript">foption(12);</script> </select>月<select name=selday> <div id=selday><script language="javascript">foption(31);</script></div> </select>日 </form> 如果你还有不明白的地方可以email给我:[email protected]。类似的,还有城市的输入,如果您有兴趣,欢迎和我一起探讨!

|