我正在使用jquery datepicker,我只需要一个月和一年。当我点击输入字段时,月份和年份选择器弹出就好了。问题是,当我选择任何月份或年份时,更新的数据不会反映在输入字段上,除非我点击页面上的其他位置。
我是如何显示选择器的
$(function () {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
dateFormat: 'MM yy',
onClose: function (dateText, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
}
});
});
我在这里做错了什么?我只需要点击任何一个月或一年,就需要输入字段来反映更新的选择。
答案 0 :(得分:1)
使用onChangeMonthYear
代替onClose
onChangeMonthYear
当datepicker移动到新的月份和/或年份时调用。该函数接收选定的年份,月份(1-12)和datepicker实例作为参数。这指的是相关的输入字段。
$(function () {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
dateFormat: 'MM yy',
onChangeMonthYear: function (year,month, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
}
});
});
$(function () {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
dateFormat: 'MM yy',
onChangeMonthYear: function (year,month, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1)); console.log(inst.selectedYear,inst.selectedMonth);
}
});
});

<input class="datepicker" type="text" /><br />
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
&#13;