日期选择器 - 只分离年份和月份

4

我想要两个独立的字段,一个是YY,一个是MM。目前我已经实现了这个功能,但是只有一个字段。以下是目前的情况:

目前的情况截图
 <input id="residenceyears" name="residenceyears" type="text"    placeholder="YY/MM" class="input yyMM numeric-only">

这是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));
   }
}

我想要实现的是这个效果:应该是这样的
});
2个回答

0

请看这个 jsFiddle -> https://jsfiddle.net/mLcpwdra/

代码如下:

html

<div id="datepicker"></div>
<hr />
<div id="month"><p>Month:<span></span></p></div>
<div id="year"><p>Year:<span></span></p></div>
<div id="day"><p>Day:<span></span></p></div>

js

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();
});

这只是一个起点,但希望它能满足你的需求。希望这有所帮助。

更新: 在YY“格式”中尝试年份 -> https://jsfiddle.net/mLcpwdra/1/


这不够用户友好。用户必须手动点击箭头才能到达他们想要的年份,而不能直接选择它。 - rory-h
我指出这是一个起点。你可以自己调整datepicker选项来微调它。我认为我的fiddle向您展示了如何将日期字符串转换为对象,并将该数据正确地设置到dom元素中。 - Nineoclick

0

这可以是您需求的其中一种方法,但并不能完全解决它。

以下是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));
        });                
    }

试一试吧!虽然它不完全是你要找的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接