发信人: girlstalker(网罗MM) 
整理人: snowypeng(2002-05-23 09:29:24), 站内信件
 | 
 
 
★原文转载自ASP版girlstalker的《输入日期之改进模式》★                           输入日期之改进模式
                           作者:girlstalker
     当表单中含有日期输入时,以前的做法通常是由用户输入年月日,然后再对用户输入的数据进行校验。现在我要介绍的一种方法就是,让用户只能输入有效日期,从而无需再在客户端对日期的有效性进行检查。当然,为了防止那些对网络有一定认识的用户故意捣乱,服务器端的校验还是要有的。
 <script language="javascript">
 function foption(N)   //初始化函数
 {
 var i,N,str;
 str="";
 for(i=1;i<=N;i++)     //您可以通过改变i和N值来改变可以输入的年份
   {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="20"+form1.selyear.value;
    if(nian%4==0 && nian%100!=0)
      ri=28;
    else ri=29;   
   }
  flen=form1.seldate .length ; 
  form1.seldate.length =ri;
  i=flen+1;
  for(i;i<=ri;i++)
    {
     form1.seldate .options(i-1).text=i;
     form1.seldate .options(i-1).value=i;
    }
 }
 </script>
     以上两个函数是用来初始化表单和改变表单中日期的可选值的。如果你看懂了上面的程序,您稍作改动即可实现更大范围的年份的输入。下面是表单部分代码:
 <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 id=seldate name=seldate>
     <script language="javascript">foption(31);</script>
  </select>日
 </form>
     如果你还有不明白的地方可以email给我:[email protected]。类似的,还有城市的输入,如果您有兴趣,欢迎和我一起探讨!
      
 
  ---- 网罗网络上所有MM! | 
 
 
 |