在没有提交表格的情况下检查日期是否过去

Ale*_*lex 5 javascript validation jquery date

我有这个代码,我想检查过去的日期.我希望在表单提交之前输入日期后立即检查.

<input id="datepicker" onchange="checkDate()" required class="datepicker-input" type="text" data-date-format="yyyy-mm-dd" >

<script type="text/javascript">
 function checkDate() {
   var selectedDate = document.getElementById('datepicker').value;
   var now = new Date();
   if (selectedDate < now) {
    alert("Date must be in the future");
   }
 }
</script>
Run Code Online (Sandbox Code Playgroud)

这不起作用,如果我输入过去的日期(例如2014-12-03),它不显示警报.

Mig*_*ell 14

您需要做的就是<input>使用Date构造函数将生成的字符串转换为Datenew Date("2014-06-12")

 function checkDate() {
   var selectedText = document.getElementById('datepicker').value;
   var selectedDate = new Date(selectedText);
   var now = new Date();
   if (selectedDate < now) {
    alert("Date must be in the future");
   }
 }
Run Code Online (Sandbox Code Playgroud)
<input id="datepicker" onchange="checkDate()" required class="datepicker-input" type="date" data-date-format="yyyy-mm-dd" >
Run Code Online (Sandbox Code Playgroud)

  • 如果要使用日期选择器插件,请使用jQuery UI的插件,然后可以设置minDate和maxDate而不是自己的验证功能。参见[此示例](http://jqueryui.com/datepicker/#min-max) (2认同)