精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● Internet>>
浏览技巧
>>[转载]:输入日期之改进模式

主题:[转载]:输入日期之改进模式
发信人: 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!

[关闭][返回]