我想要一个日期选择器,用户只能从日期选择器中选择月份和年份,我还需要限制下一个日期选择器使用从前一个日期选择器中选择的月份和年份。
谁能帮帮我?
最佳答案
Sean 的回答非常好,如果你也想禁用日期选择,你可能会使用不同的方法,你可以在 this fiddle 中看到结果:
日历是隐藏的,所以你只能选择月份和年份。在第一个日期选择器中选择日期时,第二个日期选择器的 minDate 正在调整。
编辑
当日期格式不提供日期时,jQuery 日期选择器会出现严重问题。我更改了代码以使其工作。唯一的问题是打开日期选择器时,我必须将日期转换为合适的格式。看看新的 fiddle 。
HTML:
<p>Date: <input type="text" id="first-datepicker"/></p>
<p>Date: <input type="text" id="second-datepicker"/></p>
CSS:
#ui-datepicker-div .ui-datepicker-calendar,
#ui-datepicker-div .ui-datepicker-current
{
display: none !important;
}
JavaScript:
$('#first-datepicker').datepicker({
changeYear: true,
changeMonth: true,
beforeShow: function (input, inst) {
setMyDate(inst);
},
onClose: function (dateText, inst) {
saveMyDate(inst);
var secondDatePicker = $('#second-datepicker').data('datepicker');
var dateSetted = secondDatePicker.input.data('date-setted');
setMyDate(secondDatePicker);
secondDatePicker.input.datepicker('option', 'minDate', new Date(inst.selectedYear, inst.selectedMonth, 0));
if (dateSetted == true) {
saveMyDate(secondDatePicker);
};
}
});
$('#second-datepicker').datepicker({
changeYear: true,
changeMonth: true,
beforeShow: function (input, inst) {
setMyDate(inst);
},
onClose: function (dateText, inst) {
saveMyDate(inst);
}
});
function saveMyDate(inst) {
inst.selectedDay = 1;
inst.input.data('year', inst.selectedYear);
inst.input.data('month', inst.selectedMonth);
inst.input.data('day', inst.selectedDay );
var date = new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay);
inst.input.datepicker('setDate', date );
formatDate(inst, date);
inst.input.data('date-setted', true);
};
function setMyDate(inst) {
var dateSetted = inst.input.data('date-setted');
if (dateSetted == true) {
var year = inst.input.data('year');
var month = inst.input.data('month');
var day = inst.input.data('day');
var date = new Date(year, month, day);
inst.input.datepicker('setDate', date );
};
};
function formatDate(inst, date) {
var formattedDate = $.datepicker.formatDate('MM - yy', date);
inst.input.val(formattedDate);
};
关于javascript - 只有月份和年份的日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681837/