jQuery datepicker: 从 selectedDate 限制日期
jQuery datepicker: Limit date from selectedDate
我想为用户限制我的日历以限制日期范围。
例如:如果用户 select 2014 年 3 月 10 日从,则用户不能 select 在 2014 年 6 月 10 日之后
这是我编写的代码:
提前致谢。
$(function() {
$( "#from" ).datepicker({
maxDate: 0,
dateFormat : 'dd-mm-yy',
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
var date = $(this).datepicker('getDate');
var maxDate = new Date(date.getMonth() + 3);
$( "#to" ).datepicker( "option", "maxDate", maxDate );
}
});
$( "#to" ).datepicker({
maxDate: 0,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
}
$(function() {
$( "#to").datepicker();
$( "#from").datepicker({
maxDate: 0,
dateFormat : 'dd-mm-yy',
onSelect: function( selectedDate ) {
$( "#to").datepicker("setDate", selectedDate);
$( "#to").datepicker( "option", "minDate", selectedDate );
var date = $(this).datepicker('getDate');
var maxDate = date.setMonth(date.getMonth() + 3);
$( "#to" ).datepicker( "option", "maxDate", maxDate );
}
});
问题与您使用日期的方式有关。请检查这个 fiddle
在将日期分配给日期选择器的 maxDate 或 minDate 选项之前,您必须将日期解析为有效格式:
var arr = selectedDate.split("-");
var date = new Date(arr[2] + "-" + arr[1] + "-" + arr[0]);
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var minDate = new Date(y, m + 1, d);
$("#to").datepicker("option", "minDate", minDate);
//var date = $(this).datepicker('getDate');
var maxDate = new Date(y, m + 3, d);
$("#to").datepicker("option", "maxDate", maxDate);
同样适用于另一个日期选择器:
var arr = selectedDate.split("-");
var date = new Date(arr[2] + "-" + arr[1] + "-" + arr[0]);
$("#from").datepicker("option", "maxDate", date);
希望对您有所帮助。
您可以从 From 日期选择器中获取月份,并将 To 日期选择器的 maxDate 递增到 3 个月。
$("#from").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function (date) {
var date2 = $('#from').datepicker('getDate');
date2.setMonth(date2.getMonth() + 3);
$('#to').datepicker('setDate', date2);
$('#to').datepicker('option', 'maxDate', date2);
}
});
$('#to').datepicker({
dateFormat: "dd-M-yy",
onClose: function () {
var from = $('#from').datepicker('getDate');
console.log(from);
var to = $('#to').datepicker('getDate');
if (to <= from) {
var minDate = $('#dt2').datepicker('option', 'minDate');
$('#from').datepicker('setDate', minDate);
}
}
});
检查这个 fiddle:
我想为用户限制我的日历以限制日期范围。
例如:如果用户 select 2014 年 3 月 10 日从,则用户不能 select 在 2014 年 6 月 10 日之后
这是我编写的代码:
提前致谢。
$(function() {
$( "#from" ).datepicker({
maxDate: 0,
dateFormat : 'dd-mm-yy',
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
var date = $(this).datepicker('getDate');
var maxDate = new Date(date.getMonth() + 3);
$( "#to" ).datepicker( "option", "maxDate", maxDate );
}
});
$( "#to" ).datepicker({
maxDate: 0,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
}
$(function() {
$( "#to").datepicker();
$( "#from").datepicker({
maxDate: 0,
dateFormat : 'dd-mm-yy',
onSelect: function( selectedDate ) {
$( "#to").datepicker("setDate", selectedDate);
$( "#to").datepicker( "option", "minDate", selectedDate );
var date = $(this).datepicker('getDate');
var maxDate = date.setMonth(date.getMonth() + 3);
$( "#to" ).datepicker( "option", "maxDate", maxDate );
}
});
问题与您使用日期的方式有关。请检查这个 fiddle
在将日期分配给日期选择器的 maxDate 或 minDate 选项之前,您必须将日期解析为有效格式:
var arr = selectedDate.split("-");
var date = new Date(arr[2] + "-" + arr[1] + "-" + arr[0]);
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var minDate = new Date(y, m + 1, d);
$("#to").datepicker("option", "minDate", minDate);
//var date = $(this).datepicker('getDate');
var maxDate = new Date(y, m + 3, d);
$("#to").datepicker("option", "maxDate", maxDate);
同样适用于另一个日期选择器:
var arr = selectedDate.split("-");
var date = new Date(arr[2] + "-" + arr[1] + "-" + arr[0]);
$("#from").datepicker("option", "maxDate", date);
希望对您有所帮助。
您可以从 From 日期选择器中获取月份,并将 To 日期选择器的 maxDate 递增到 3 个月。
$("#from").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function (date) {
var date2 = $('#from').datepicker('getDate');
date2.setMonth(date2.getMonth() + 3);
$('#to').datepicker('setDate', date2);
$('#to').datepicker('option', 'maxDate', date2);
}
});
$('#to').datepicker({
dateFormat: "dd-M-yy",
onClose: function () {
var from = $('#from').datepicker('getDate');
console.log(from);
var to = $('#to').datepicker('getDate');
if (to <= from) {
var minDate = $('#dt2').datepicker('option', 'minDate');
$('#from').datepicker('setDate', minDate);
}
}
});
检查这个 fiddle: