我想构建一个只接受Month和Year的日期选择器,所以我只是使用display:none来隐藏CSS的日子,这对我来说很好。然后我更改了datepicker选项,用户只选择Month和Year,并且工作正常。
例如,如果我选择“JAN / 2017”,则输入变化很好。但是如果你再次点击输入,它将不是2017年1月,将是SEP / 2017。为什么?
这是一个plunker:CLICK HERE =)
如果您更喜欢看代码,请访问:
<body>
<style>
.ui-datepicker-calendar {display: none!important;}
</style>
<input class="date-picker">
<script>
$('document').ready(function () {
$('.date-picker').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'MM yy',
onClose: function (dateText, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
}
});
})
</script>
非常感谢!
@EDIT - 解决了!
我不知道这是不是最好的方式,但是有效!我只是制作了一些操纵DOM的事件
var mmNow, yyNow;
$('document').ready(function () {
$('.date-picker').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'MM yy',
onClose: function (dateText, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
}
}).click(function () {
$('.date-picker').datepicker('setDate', new Date(yyNow, mmNow, 1));
}).blur(function(){
mmNow = ($('.ui-datepicker-month')[0].value)
yyNow = ($('.ui-datepicker-year')[0].value)
})
})
如果你使用它,它应该解决你的问题,除了它也会显示日期
dateFormat: 'MM/dd/yy',
例如,如果您想在输入中显示“2017年9月”,则应将dateFormat
更改为M yy
,如果需要斜线,则应更改为M/yy
。