JQuery UI Datepicker,反转下拉菜单中的年份顺序 [英] JQuery UI Datepicker, reverse the order of the year in the dropdowns
问题描述
我有一个带有 changeyear: true 的日期选择器.年份"下拉列表将标题显示为 2009,然后标题下方的下一年不是 2008、2007、2006 等,而是从 1999 开始并向上计数.我似乎找不到一个简单的解决方案来颠倒这个顺序?
I have a datepicker with changeyear: true. The 'year' drop down displays the title as 2009, then instead of the next year below the title being 2008, 2007, 2006 and so on it starts at 1999 and counts upwards. I can't seem to find an easy solution to reverse this order?
推荐答案
我不建议将原始 ui.datepicker.js 编辑为 Cuong 建议,因为一旦您或其他开发人员在新版本发布时替换文件,您的更改就会丢失.记住进行了哪些自定义以重新应用是不切实际的.相反,您可以在自己的单独 JS 中覆盖现有的 _generateMonthYearHeader
方法,如下所示:
I wouldn't recommend editing the original ui.datepicker.js as Cuong suggested because your changes will be lost as soon as you or another developer replaces the file when a new version is released. Remembering what customisations have been made in order to re-apply is not practical. Instead, you can override the existing _generateMonthYearHeader
method in your own separate JS like so:
// store original so we can call it inside our overriding method
$.datepicker._generateMonthYearHeader_original = $.datepicker._generateMonthYearHeader;
$.datepicker._generateMonthYearHeader = function(inst, dm, dy, mnd, mxd, s, mn, mns) {
var header = $($.datepicker._generateMonthYearHeader_original(inst, dm, dy, mnd, mxd, s, mn, mns)),
years = header.find('.ui-datepicker-year');
// reverse the years
years.html(Array.prototype.reverse.apply(years.children()));
// return our new html
return $('<div />').append(header).html();
}
我只是为我正在做的事情写了这个,它很好地解决了这个问题:)
I just wrote this for something I'm working on and it does the trick nicely :)
这篇关于JQuery UI Datepicker,反转下拉菜单中的年份顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!