我使用jquery UI datepicker示例站点中的脚本(1)。它提供了选择数据范围的能力。我添加了行" minDate:0"在今天之前禁用所有日期。 我想将它与我在Stack Overflow中找到的函数(2)结合起来。它会禁用日历中的日期数组。
我尝试将这些脚本组合在一起,但我不能让它们全部协同工作(选择日期范围,禁用今天之前的日期并禁用日期数组)。 非常感谢帮助。
(1)来自jquery UI datepicker示例站点的代码。这个pen有一个工作样本。
$(function() {
$( "#from" ).datepicker({
minDate: 0,
changeMonth: true,
numberOfMonths: 2,
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});
$( "#to" ).datepicker({
minDate: 0,
changeMonth: true,
numberOfMonths: 2,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
});
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
</head>
<body>
<label for="from">From</label>
<input type="text" id="from" name="from">
<label for="to">to</label>
<input type="text" id="to" name="to">
</body>
(2)禁用某些日期的脚本(link)(另请参阅此fiddle)
var array = ["2013-03-14","2013-03-15","2013-03-16"]
$('input').datepicker({
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ array.indexOf(string) == -1 ]
}
});
答案 0 :(得分:0)
只需将这些选项组合起来:
var array = ["2014-12-14","2014-12-15","2014-12-16"];
$( "#from" ).datepicker({
minDate: 0,
changeMonth: true,
numberOfMonths: 2,
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ array.indexOf(string) == -1 ]
},
onClose: function( selectedDate ) {
if (selectedDate) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
}
});
$( "#to" ).datepicker({
minDate: 0,
changeMonth: true,
numberOfMonths: 2,
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ array.indexOf(string) == -1 ]
},
onClose: function( selectedDate ) {
if (selectedDate) {
$( "#from ").datepicker( "option", "maxDate", selectedDate);
}
}
});