.datepicker 日历选择不工作 100% 的时间
.datepicker calendar selection not working 100% of the time
这段代码似乎可以正常工作,除了当用户从#startdate 输入字段中选择一个新日期时,它只会在前 2 次更新#enddate 字段,而在第 3 次它什么都不做,不确定到底是什么原因造成的问题...如果有人能够发现问题
我使用以下导入,这就是我在记事本++中打开它们时每个导入顶部的内容
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 />
我制作了一个 fiddle http://jsfiddle.net/RzD5Z/25/ 向您展示了我遇到的奇怪行为
$('#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 的初始化有问题,所以我在重新初始化之前将其销毁。参见 fiddle - 效果很好 http://jsfiddle.net/RzD5Z/33/
这段代码似乎可以正常工作,除了当用户从#startdate 输入字段中选择一个新日期时,它只会在前 2 次更新#enddate 字段,而在第 3 次它什么都不做,不确定到底是什么原因造成的问题...如果有人能够发现问题
我使用以下导入,这就是我在记事本++中打开它们时每个导入顶部的内容
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 />
我制作了一个 fiddle http://jsfiddle.net/RzD5Z/25/ 向您展示了我遇到的奇怪行为
$('#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 的初始化有问题,所以我在重新初始化之前将其销毁。参见 fiddle - 效果很好 http://jsfiddle.net/RzD5Z/33/