1

我在这里有一个 Jquery 日期选择器的代码

// Datepicker from jQuery UI plugin
    $birth.datepicker({
    onSelect: function(dateText, inst) { 
        $(this).parent().find("label#error").html("");
        $gender.focus();
    },
        yearRange: '1950:2006',
        changeMonth: true,
    changeYear: true,           
    showOtherMonths: true,          
    selectOtherMonths: true,
    dateFormat: 'yy-mm-dd'
    });
});

我的年份下拉列表从 1950 年开始一直到 2006 年,我想将它们反转..

我试过yearRange: '2006:1950'但没有显示:(

有没有办法来解决这个问题?

4

2 回答 2

1

提供的链接是一个很好的解决方案。这是另一种黑客但有效的方法: http ://plnkr.co/edit/sSdUbqd1pWKyiBOZAMwD?p=preview

$(document).ready(function() {

  var showPicker = false;

  $("#txtBirthday").datepicker({
    onSelect: function(dateText, inst) {
      $(this).parent().find("label#error").html("");
      $gender.focus();
    },
    yearRange: '1950:2006',
    changeMonth: true,
    changeYear: true,
    showOtherMonths: true,
    selectOtherMonths: true,
    dateFormat: 'yy-mm-dd', 
    onClose: function(dateText, inst) {
      showPicker = false;
    }
  });

  $(".ui-datepicker").on("mouseenter", function() {

    if (!showPicker) {
      showPicker = true;

      //Reverse the years
      var dropYear = $("select.ui-datepicker-year");

      dropYear.find('option').each(function() {
        dropYear.prepend(this);
      });

    }

  });

});
于 2013-12-18T05:59:34.373 回答
1

希望这个问题,我找到了一个更好的解决方案并看到了你的帖子。如果这仍然相关:

jQuery datepicker 年份下拉菜单从 1900 年开始,我希望它从底部开始

这就是我解决问题的方法。我认为这就是为什么 jQuery 没有修复这个“错误”的原因,因为有一种“方法”可以让年份从最后一个日期开始:

dateFormat: 'mm/dd/yy',
changeMonth: true, 
changeYear: true,  
yearRange: "-70:", 
maxDate: "-13Y"

与我在此处发布的原始代码相比,如果使用 yearRange固定年份yearRange: "1900:-13" ,最好从下往上使用:"-70:". 并设置maxDate. 所以现在我从 2004 年而不是 1900 年开始得到我的年份选择框。

希望这可以帮助其他人。

PS:所有其他解决方案都已经过测试。它们非常慢,而且有些效果不佳(尤其是旧的 - 例如设置当前年份而不是 2004 年)。

于 2017-03-08T08:09:02.113 回答