发信人: 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! |
|