Javascript 日期选择器-仅单独的YY和MM

Javascript 日期选择器-仅单独的YY和MM,javascript,jquery,html,datepicker,Javascript,Jquery,Html,Datepicker,我试图为YY和MM设置两个单独的字段 我现在所拥有的或多或少是我想要的,只是它只有一个领域。下面是它现在的样子: 这是JS函数: <script type="text/javascript"> $('.yyMM').datepicker({ changeMonth: true, changeYear: true, monthNames: ["1","2","3","4","5","6","7","8","9","10","11","12"], yearRange: "-1

我试图为YY和MM设置两个单独的字段 我现在所拥有的或多或少是我想要的,只是它只有一个领域。下面是它现在的样子:


这是JS函数:

<script type="text/javascript">
$('.yyMM').datepicker({
 changeMonth: true,
 changeYear: true,
 monthNames: ["1","2","3","4","5","6","7","8","9","10","11","12"],
 yearRange: "-100:+0", 
 dateFormat: 'yy/mm',

 onClose: function() {
    var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
    var iYear = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
    $(this).datepicker('setDate', new Date(iYear, iMonth, 1));
 },

 beforeShow: function() {
   if ((selDate = $(this).val()).length > 0) 
   {
      iYear = selDate.substring(selDate.length - 4, selDate.length);
      iMonth = jQuery.inArray(selDate.substring(0, selDate.length - 5), $(this).datepicker('option', 'monthNames'));
      $(this).datepicker('option', 'defaultDate', new Date(iYear, iMonth, 1));
       $(this).datepicker('setDate', new Date(iYear, iMonth, 1));
   }
}

$('.yyMM').datepicker({
变化月:对,
变化年:是的,
月份:[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”],
年份范围:“-100:+0”,
日期格式:“yy/mm”,
onClose:function(){
var iMonth=$(“#ui datepicker div.ui datepicker month:selected”).val();
var iYear=$(“#ui datepicker div.ui datepicker year:selected”).val();
$(this.datepicker('setDate',新日期(iYear,iMonth,1));
},
beforeShow:function(){
如果((selDate=$(this.val()).length>0)
{
iYear=selDate.substring(selDate.length-4,selDate.length);
iMonth=jQuery.inArray(selDate.substring(0,selDate.length-5),$(this.datepicker('option','monthNames');
$(this.datepicker('option','defaultDate',新日期(iYear,iMonth,1));
$(this.datepicker('setDate',新日期(iYear,iMonth,1));
}
}
}))


我试图实现的是:

看看这个JSFIDLE->

守则:

html

这是一个起点,但思考适合你的需要。希望这有帮助


更新:以YY“格式”摆弄年份->

这可能是满足您需求的方法之一,但并不能完全解决它

下面是HTML:

<select class="form-control" id="yearMonthInput"></select>

下面是javascript:

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

    for (i = new Date().getFullYear() ; i > 2008; i--) {
        $.each(months, function (index, value) {
            $('#yearMonthInput').append($('<option />').val(index + "_" + i).html(i + " " + value));
        });                
    }
var月数=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
对于(i=新日期().getFullYear();i>2008;i--){
$。每个(月、功能(索引、值){
$('#yearMonthInput').append($(''.val(index+“"+i).html(i+“”+value));
});                
}

试试看!尽管它并不完全是您想要的。

这对用户来说并不友好。用户必须手动点击箭头才能到达他们想要的年份,而不是选择它。我指出这是一个起点。您可以自己使用datepicker选项对其进行微调。我想我的小提琴向您展示了如何将datestring管理到对象中,并将数据正确地设置到dom元素中。
var obj = {
    init: function()
  {
    $('#datepicker').datepicker({
        onSelect : function(date_string,instance)
      {
        var date_obj = new Date(date_string);
        $('#month span').text(String("00"+date_obj.getMonth()).slice(-2));
        $('#year span').text(date_obj.getFullYear());
        $('#day span').text(String("00"+date_obj.getDate()).slice(-2));
      }
    });
  }
};

$(document).ready(function(){
    obj.init();
});
<select class="form-control" id="yearMonthInput"></select>
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

    for (i = new Date().getFullYear() ; i > 2008; i--) {
        $.each(months, function (index, value) {
            $('#yearMonthInput').append($('<option />').val(index + "_" + i).html(i + " " + value));
        });                
    }