此代码似乎正常工作,除非用户从#startdate输入字段中选择一个新日期时,它只会在前2次更新#enddate字段,而在3日它什么都不做,不确定究竟是什么导致问题......如果有人能够发现问题
我使用以下导入,这就是当我在notepad ++中打开它们时在每个导入的顶部所说的
jquery-ui.css v1.11.2
jquery.js v1.10.2
jquery-ui.js v1.11.2
$(document).ready(function () {
$("#enddate").datepicker({
dateFormat: "dd-M-yy",
onSelect: function (date){
var dateliveend = $("#enddate").val();
$('#dateliveend').html(dateliveend);
}
});
$("#startdate").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
maxDate: 365,
onSelect: function (date) {
var enddate = $('#startdate').datepicker('getDate');
var startdate = $('#startdate').datepicker('getDate');
startdate.setDate(startdate.getDate());
enddate.setDate(enddate.getDate() + 28);
$('#enddate').datepicker('setDate', enddate);
$('#enddate').datepicker('option', 'maxDate', enddate);
$('#enddate').datepicker('option', 'minDate', startdate);
}
});
});
<input type="text" id="startdate" name="startdate"
value=" <?php echo date('d-M-Y', strtotime('+0 day') + 36000); ?>" readonly />
<input type="text" id="enddate" name="deadline"
value=" <?php echo date('d-M-Y', strtotime('+28 day') +36000); ?>" readonly />
我制作了一个小提琴http://jsfiddle.net/RzD5Z/25/,它向您展示了我正在经历的奇怪行为
答案 0 :(得分:0)
$('#enddate').datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
defaultDate: "+28d",
maxDate: "+28d",
});
$("#startdate").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
maxDate: 365,
onClose: function () {
var enddate = $('#startdate').datepicker('getDate');
var startdate = new Date(enddate);
enddate.setDate(enddate.getDate()+28);
$('#enddate').datepicker('destroy');
$('#enddate').datepicker();
$('#enddate').datepicker('setDate', enddate);
$('#enddate').datepicker('option', {
dateFormat: "dd-M-yy",
minDate: startdate,
maxDate: enddate
});
}
});
HTML
<input type="text" id="startdate" readonly />
<input type="text" id="enddate" readonly />
这是解决方案,我相信.datepicker有一个初始化的问题所以我在重新初始化之前将其销毁。看小提琴 - 作品很棒http://jsfiddle.net/RzD5Z/33/