<script>
$(function() {
$('#from').datepicker({
defaultDate: "+5d",
changeMonth: true,
numberOfMonths:1 ,
minDate:"+0d",
dateFormat: 'DD, MM d, yy',
onSelect: function(selectedDate) {
var option = this.id == "from" ? "minDate" : "maxDate";
var instance = $(this).data("datepicker");
var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
});
});
$(function() {
$('#to').datepicker({
defaultDate: "+5d",
changeMonth: true,
numberOfMonths:1 ,
minDate:"+0d",
dateFormat: 'DD, MM d, yy',
onSelect: function(selectedDate) {
var option = this.id == "from" ? "minDate" : "maxDate";
var instance = $(this).data("datepicker");
var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
});
});
function callme(id){
var temp1 = "#" + id;
if(temp1 == "#from"){
$("#to").unbind();
}
else{
var temp = $("#from").val();
var msecsInADay = 86400000;
var startDate = new Date(temp);
var endDate = new Date(startDate.getTime() + msecsInADay);
var t = endDate.getDate() + '/' + (endDate.getMonth()+1) + '/' + endDate.getFullYear();
$('#to').datepicker({minDate: new Date(t)});
$('#to').datepicker().datepicker("show");
}
}
</script>
</head>
<body>
<label>date</label><input id="from" type="text" onclick="callme(this.id)"/>
<label>return</label><input id="to" type="text" onclick="callme(this.id)" />
现在我想要的是......
当我选择第一个日期。 [日期之前的“#from”]表示应在日历中禁用
现在当我选择日历日期的第二个日期[表示在“#to”]时应该开始一天加。然后是上一个日期。
但是这里的最短约会没有改变。
提前感谢...
答案 0 :(得分:1)
如果我理解你的问题(和代码,因为提供的代码比你的规范更多)你需要以下行为:
F
中的#from
日期,则您应该只能在F
中选择大于#to
的日期。T
中的日期#to
被选中时,T
#from
的日期
醇>
此代码将执行此操作:
$(function() {
$('#from').datepicker({
defaultDate: '+5d',
changeMonth: true,
numberOfMonths:1,
minDate:'+0d',
dateFormat: 'DD, MM d, yy',
onClose: function(dateText, inst) {
if (dateText !== '') {
try {
var fromDate = $.datepicker.parseDate(inst.settings.dateFormat, dateText, inst.settings);
fromDate.setDate(fromDate.getDate() + 1);
$('#to').datepicker('option', 'minDate', fromDate);
}
catch (err) {
console.log(err);
}
}
else {
//If #from is empty, restore the original limit in #to
$('#to').datepicker('option', 'minDate', '+0d');
}
}
});
$('#to').datepicker({
defaultDate: '+5d',
changeMonth: true,
numberOfMonths:1,
minDate:'+0d',
dateFormat: 'DD, MM d, yy',
onClose: function(dateText, inst) {
if (dateText !== '') {
try {
var toDate = $.datepicker.parseDate(inst.settings.dateFormat, dateText, inst.settings);
toDate.setDate(toDate.getDate() - 1);
$('#from').datepicker('option', 'maxDate', toDate);
}
catch (err) {
console.log(err);
}
}
else {
//If #to is empty, remove the limit in #from
$('#from').datepicker('option', 'maxDate', null);
}
}
});
});
两个onClose
函数非常相似,可以推广到一个函数中,但我认为通过这种方式更容易理解这些函数。
此外,onClick
或#from
中的#to
处理程序不再需要。