2011-06-21 3 views
0

jQueryのDatepick maxDateオプションを使用して、カレンダーの選択を90日間に制限しています。しかし、ユーザーはそれを回避することができれば、日付を手動で変更して入力することができます。入力した日付が今日から90日以内であることをjavascriptで確認するにはどうすればよいですか。日付形式はmm/dd/YYYYです。 Ex。ここでは2011年6月21日入力した日付が90日以内であることを確認するにはどうすればよいですか?

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"  type="text/javascript"></script> 
<input type="text" id="txtMaxDate" /> 
<input type="submit" /> 

$(function() { 
$("#txtMaxDate").datepicker({ 
    maxDate: '+90d' 
}); 
$('input:submit').click(function() { 
    var today = new Date(); 
    var targetDate = $("#txtMaxDate").val(); 
    //$("#txtMaxDate").datepicker("option", "dateFormat", '@'); 
    alert(today); 
    alert(targetDate); 

}); 
}); 

例 - http://jsfiddle.net/6qmPP/1/

+9

答えに加えて、誰かがJSを無効にして、必要なものを投稿するだけで、サーバーとクライアントで検証できます。 – Bojangles

答えて

3

これがうまく動作するようです:

$(function() { 
    $("#txtMaxDate").datepicker({ 
     maxDate: '+90d' 
    }); 
    $('input:submit').click(function() { 
     var today = new Date(); 
     var targetDate = $("#txtMaxDate").datepicker("getDate"); 
     if(Math.round(Math.abs(today - targetDate)/(1000 * 60 * 60 * 24)) > 90) { 
      alert("date is more than 90 days from today"); 
     } 
    }); 
}); 

他の人が言ったように、あなたはサーバー側でこれを検証していることを確認してください。

+0

これは素晴らしい作品です!ありがとうございました! –

関連する問題