jQuery月/年选择器未显示进行选择的月份/年份

时间:2017-07-01 08:59:44

标签: jquery datepicker jquery-ui-datepicker

我正在使用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));
        }
    });
});

我在这里做错了什么?我只需要点击任何一个月或一年,就需要输入字段来反映更新的选择。

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;
&#13;
&#13;