解决jQuery-ui日期范围错误?

时间:2013-09-02 08:18:21

标签: javascript jquery jquery-ui jquery-ui-datepicker

我一直在为我的项目使用jquery-ui,最近我发现如果日期范围不是当前年份,则datepicker小部件中有一个错误,它不会选择日期。看看这个example。但是,如果您更改年份并选择某个日期,则需要使用正确的值。我知道在jquery中有BUG票,他们将在下一个版本v.1.11上解决bcoz jquery ui是大js我很少偏执进入文件并修改它。是否存在我现在可以使用的黑客攻击或可能的解决方案

$('#test').datepicker({
    yearRange: '-100:-18',
    changeMonth: true,
    changeYear:  true
});

2 个答案:

答案 0 :(得分:1)

一种黑客的解决方法是明确地将defaultDate设置为打开时由datepicker显示的那个;或其他一些合理的默认值:

var defaultDate = new Date();
defaultDate.setHours(0, 0, 0, 0);
defaultDate.setYear(defaultDate.getYear() - 100);
console.log(defaultDate); // current month, current date, current year - 100
$('#test').datepicker({
    yearRange: '-100:-18',
    changeMonth: true,
    changeYear: true,
    defaultDate: defaultDate
});

Demo here

答案 1 :(得分:1)

检查此方法

<强> FIDDLE DEMO

$('#test').datepicker({
    yearRange: '-100:-18',
    changeMonth: true,
    changeYear:  true,
    onSelect: function(dateText, inst) {
              var d = new Date(dateText);
              var selectedYear = d.setFullYear(parseInt($('.ui-datepicker-year :selected').text())); // selected year      
        $('#test').val([d.getMonth()+1, d.getDate(), d.getFullYear()].join('/'));

           }
});