<html>
<body>
<form onsubmit="return checkDate(this)">
<input name=StartDate value="2002/12/2">
<input name=EndDate value="2002/11/2">
<input type=submit>
</form>
<script language=javascript>
function checkDate(o){
if(o.StartDate.value!="" && o.EndDate.value!=""){
n=Date.parse(new Date(o.EndDate.value))-Date.parse(new Date(o.StartDate.value))
if(n<0){
alert("开始日期应该在结束日期之前!")
return false
}
}
return true
}
</script>
</body>
</html>

解决方案 »

  1.   

    <form onsubmit="return checkDate(this)" name=form1 action="1.asp">
    <input name=StartDate>
    <input name=EndDate> 
    <input type=submit> 
    </form>
    <script language="javascript">
    function checkDate(o){
    var d1=o.StartDate.value
    var d2=o.EndDate.value
    if((o.StartDate.value!="")&&(o.EndDate.value!="")){
    execScript('n = DateDiff("d",d1,d2)','vbscript');
    if(n<0){
    alert("开始日期应该在结束日期之前");
    return false
    }
    return true
    }
    }
    </script>
      

  2.   

    to net_lover(孟子E章) :你的可以,但是我的日期用户录入的时候为
    2003-3-20这样的格式,对这样的格式就不行,我是需要做一下转换,还是有现成的办法呀?to fason(阿信) :你的办法好像不行哦,你经过测试的么?
      

  3.   

    这个问题我提示一下做法:
    如果你能像我一样写一个函数格式化数据的函数,将你输入或选择的日期固定为一个格式,则比较日期不就是字符串的比较了?
    否则将输入框的数据用split提取出来,用new Date(int,int,int).getTime()比较就OK了。
      

  4.   

    我觉得slam_yang(维妮熊) 的提议也不错,因为我发现在在有些人的机器上,会出现一些问题,但在我自己的机器上竟然没有,在其他人出现错误的时候,会问用户是否需要调试,给人感觉很不好。所以我还是接纳了slam_yang(维妮熊) 的建议。多谢大家。不过也也会继续学习,能够找到一定不会在用户的机器上写法才行。