2011-12-26 101 views
0

在Javascript中,我正在嘗試編寫驗證日期,用戶必須選擇未來的日期而不是過去的日期。我的代碼似乎只在我使用上個月的日期時才起作用(例如26/11/2011)。這是我的腳本:使用javascript驗證日期?

<script type="text/javascript" > 
    function mydate() 
    {   
     var d= new Date(); 
     var day= d.getDate(); 

     var mon=d.getMonth(); 

     var year= d.getFullYear(); 

     var dateformat= day+"/"+mon+"/"+year ; 

     var get= document.getElementById("txt").value; 

     if(get >= dateformat) 
     { 
      alert ('yes valid'); 
     } 
     else 
     { 
      alert('Date should greater than to date '); 
     } 
    } 
</script> 

回答

2

您正在比較日期值作爲字符串。這是一個文本比較不是一個日期明智的比較,所以它幾乎從來沒有工作除了巧合。您需要解析用戶輸入到Date數據類型的日期值,並以此方式進行比較。

只要有可能,您應該避免自己寫日期操作代碼,並嘗試利用已知的工作解決方案,例如, jQuery UI Datepicker

+0

Mr. bobbymcr我們可以將javascript和asp.net驗證控件同時放置在不同控件的相同頁面中。 – 2011-12-26 05:40:25

+0

我既不是Javascript也不是ASP.NET專家,但我敢肯定你可以做到。您可能會遇到困難,例如看到這裏:http://stackoverflow.com/questions/4088770/asp-net-mixing-server-controls-with-client-controls – bobbymcr 2011-12-26 05:44:06