這真的讓我感到困擾,jQuery datepicker有一個用於更改月份的選擇框,但它不顯示完整的月份名稱(但它在其他月份)。jQuery Datepicker - 在選擇框中顯示完整的月份名稱
截圖:http://i.imgur.com/Pdkq0.png
有沒有一種方法來定製日期選擇器可顯示完整的月份名稱,而無需修改源代碼?
這真的讓我感到困擾,jQuery datepicker有一個用於更改月份的選擇框,但它不顯示完整的月份名稱(但它在其他月份)。jQuery Datepicker - 在選擇框中顯示完整的月份名稱
截圖:http://i.imgur.com/Pdkq0.png
有沒有一種方法來定製日期選擇器可顯示完整的月份名稱,而無需修改源代碼?
也許一點點遲了,但我在這個時候遇到了同樣的問題,而且很容易修復。致電前的日期選擇器功能得到monthNames數組,把它們放在一個新的變量,並通過調用該變量改變簡短名字:
var fullmonth_array = $.datepicker.regional['nl'].monthNames; // change 'nl' to your own language of course
$('input[name="date-of-birth"]').datepicker(
{
changeYear : true,
changeMonth : true,
yearRange : "-85:-18",
maxDate : "-18Y",
minDate : "-85Y",
monthNamesShort : fullmonth_array
// other stuff
}
如果有人遇到這爲了今天的工作,你應該把'$ .datepicker.regional ['nl']。monthNames'改爲'$ .datepicker._defaults.monthNames' –
不要找比更新UI日期選擇更好的辦法,但是,讓你的想法:
var months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
var uDatepicker = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function() {
var ret = uDatepicker.apply(this, arguments);
var $sel = this.dpDiv.find('select');
$sel.find('option').each(function(i) {
$(this).text(months[i]);
});
return ret;
};
$(function() {
$("#id").datepicker({
changeMonth: true,
dateFormat: 'MM yy'
});
});
謝謝,這個作品除了它不是很正確。如果選擇菜單中沒有12個月的話,那麼月份是錯誤的。例如,如果當前月份是十二月份,則只會在選擇菜單中顯示十二月份,但根據您的腳本,它將被稱爲「一月份」。要修復,'$(this).text(months [i]);'需要'$(this).text(months [$(this).attr('value')]);' – BadHorsie
可以定義屬性 「monthNamesShort
」 爲:
$(".selector").datepicker({
monthNamesShort: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
});
可以延長日期選擇器和「覆蓋」有問題的功能,通過在長名。
$.extend($.datepicker, {
__base__generateMonthYearHeader: $.datepicker._generateMonthYearHeader,
_generateMonthYearHeader: function (inst,
drawMonth,
drawYear,
minDate,
maxDate,
secondary,
monthNames,
monthNamesShort) {
return $.datepicker.__base__generateMonthYearHeader(
inst,
drawMonth,
drawYear,
minDate,
maxDate,
secondary,
monthNames,
monthNames)
}
});
這在下拉顯示全名,但允許在設置/選項中指定的格式,當輸入元素設置與選定日期的權益。
更好的解決方案是從您的語言環境對象中使用monthNames
。
// jQuery UI datepicker
$("#datepicker").datepicker({
monthNamesShort: $.datepicker.regional["en"].monthNames
});
// jQuery UI的日期選擇器
這裏MM顯示月份的全名
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd MM yy',
});
你知道嗎,它真的很難調試圖片... –
你並不需要調試一切。我在問如何自定義jQuery UI日期選擇器。 – BadHorsie
好吧,我不知道它在datepicker中的原始選項,我認爲這是一個自定義的,非常抱歉 –