jQuery datepicker来防止过去的date

如何禁用jQuery datepicker上的过去date? 我查找的选项,但似乎没有发现任何指示能够禁用过去的date。

更新:感谢您的快速回应。 我试过,没有运气。 天还没有像我预期的那样变灰,仍然接受选定的过去的date。

我试过这个:

$('#datepicker').datepicker({ minDate: '0' }); 

不起作用。

我试过这个:

 $('#datepicker').datepicker({ minDate: new Date() }); 

依然不起作用。

它显示日历小部件就好了。 它只是不会灰色或防止过去的日子input。 我曾经尝试过minDate和maxDate,但没有运气,所以我认为这不应该是他们。

尝试这个:

 $("#datepicker").datepicker({ minDate: 0 }); 

0删除引号。

您只需要指定一个最短date – 将其设置为0意味着最低date是从今天即今天起的0天。 你可以传递string'0d' (默认单位是天)。

 $(function () { $('#date').datepicker({ minDate: 0 }); }); 

删除周围的引号0 ,它将工作。

工作代码片段:

 // set minDate to 0 for today's date $('#datepicker').datepicker({ minDate: 0 }); 
 body { font-size: 12px; /* just so that it doesn't default to 16px (which is kinda huge) */ } 
 <!-- load jQuery and jQuery UI --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> <!-- load jQuery UI CSS theme --> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> <!-- the datepicker input --> <input type='text' id='datepicker' placeholder='Select date' /> 

如果你正在处理一个先前绑定的dateselect器,然后设置

 $("#datepicker").datepicker({ minDate: 0 }); 

不pipe用。 该语法仅适用于您创build窗口小部件的情况。

要为绑定dateselect器设置最短date,请使用以下内容:

 $("#datePicker").datepicker("option", "minDate", 0); 

使用minDate选项来设置最小可能的date。 http://jqueryui.com/demos/datepicker/#option-minDate

给零介意,它会废除过去的date。

 $( "#datepicker" ).datepicker({ minDate: 0}); 

现场示例

在这里阅读更多

这工作:

 $("#datepicker").datepicker({ minDate: +0 }); 

//禁用将来的date

 $('#datetimepicker1').datetimepicker({ format: 'DD-MM-YYYY', maxDate: new Date }); 

//禁用过去的date

  $('#datetimepicker2').datetimepicker({ format: 'DD-MM-YYYY', minDate: new Date }); 

$("#datePicker").datePicker({startDate: new Date() }); 。 这对我有用

我正在使用以下代码格式化date,并在日历中显示2个月…

 <script> $(function() { var dates = $( "#from, #to" ).datepicker({ showOn: "button", buttonImage: "imgs/calendar-month.png", buttonImageOnly: true, defaultDate: "+1w", changeMonth: true, numberOfMonths: 2, onSelect: function( selectedDate ) { $( ".selector" ).datepicker({ defaultDate: +7 }); var option = this.id == "from" ? "minDate" : "maxDate", instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); dates.not( this ).datepicker( "option", "dateFormat", 'yy-mm-dd' ); } }); }); </script> 

问题是我不知道如何限制以前的dateselect。

确保你把多个属性放在同一行(因为你只显示了1行代码,你可能遇到了同样的问题)。

我会设置默认date,但没有灰色的旧date。 这不起作用:

 $('#date_end').datepicker({ defaultDate: +31 }) $('#date_end').datepicker({ minDate: 1 }) 

这两个:

 $('#date_end').datepicker({ defaultDate: +31, minDate: 1 }) 

1和+1的工作方式相同(或者0和+0在你的情况下)。

我:Windows 7 x64,Rails 3.2.3,Ruby 1.9.3

 var givenStartDate = $('#startDate').val(); alert('START DATE'+givenStartDate); var givenEndDate = $('#endDate').val(); alert('END DATE'+givenEndDate); var date = new Date(); var month = date.getMonth()+1; var day = date.getDate(); var currentDate = date.getFullYear() + '-' + (month<10 ? '0' : '') + month + '-' + (day<10 ? '0' : '') + day; if(givenStartDate < currentDate || givenEndDate < currentDate) { $("#updateButton").attr("disabled","disabled"); } if(givenStartDate < currentDate && givenEndDate > currentDate) { $("#updateButton").attr("enabled","enabled"); } if(givenStartDate > currentDate || givenEndDate > currentDate) { $("#updateButton").attr("enabled","enabled"); } 

尝试这个。 如果有任何错误,请纠正我:)谢谢大家。

尝试将startDate设置为当前date。 例如:

 $('.date-pick').datePicker({startDate:'01/01/1996'}); 

我使用了min属性: min="' + (new Date()).toISOString().substring(0,10) + '"

这是我的代码,它的工作。

 <input type="date" min="' + (new Date()).toISOString().substring(0,10) + '" id="' + invdateId + '" value="' + d.Invoice.Invoice_Date__c + '"/> 

在这里输入图像说明