jQuery UI DatePicker, чтобы показать только месяц год

342

Я использую jQuery date picker, чтобы отображать календарь по всему моему приложению. Я хочу знать, могу ли я использовать его для отображения месяца и года (май 2010 г.), а не календаря?

  • 14
    Так ты хочешь месяц выбрать?
  • 0
    Используете ли вы jQueryUI DatePicker?
Показать ещё 5 комментариев
Теги:
date
jquery-ui-datepicker

27 ответов

410
Лучший ответ

Здесь взломан (обновлен весь файл.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css">
    <script type="text/javascript">
        $(function() {
            $('.date-picker').datepicker( {
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            dateFormat: 'MM yy',
            onClose: function(dateText, inst) { 
                $(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
            }
            });
        });
    </script>
    <style>
    .ui-datepicker-calendar {
        display: none;
    }
    </style>
</head>
<body>
    <label for="startDate">Date :</label>
    <input name="startDate" id="startDate" class="date-picker" />
</body>
</html>

EDIT jsfiddle для приведенного выше примера: http://jsfiddle.net/DBpJe/7755/

EDIT 2 Добавляет значение месяца в поле ввода только при нажатии кнопки "Готово". Также позволяет удалять значения полей ввода, что невозможно в приведенном выше поле http://jsfiddle.net/DBpJe/5103/

EDIT 3 обновил Better Solution на основе решения rexwolf.
http://jsfiddle.net/DBpJe/5106

  • 0
    Это не сработало. Этот показывает календарь. в то время как я просто хочу списки месяца и года, а не календарь с датами.
  • 14
    Вызов setDate снова откроет средство выбора в некоторых браузерах. Чтобы предотвратить это, отключили и включили средство выбора: $ (this) .datepicker ('отключить'); $ (this) .datepicker ('setDate', new Date (year1, month1, 1)); $ (Это) .datepicker ( 'включить');
Показать ещё 5 комментариев
74

Этот код работает безупречно для меня:

<script type="text/javascript">
$(document).ready(function()
{   
    $(".monthPicker").datepicker({
        dateFormat: 'MM yy',
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,

        onClose: function(dateText, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).val($.datepicker.formatDate('MM yy', new Date(year, month, 1)));
        }
    });

    $(".monthPicker").focus(function () {
        $(".ui-datepicker-calendar").hide();
        $("#ui-datepicker-div").position({
            my: "center top",
            at: "center bottom",
            of: $(this)
        });
    });
});
</script>

<label for="month">Month: </label>
<input type="text" id="month" name="month" class="monthPicker" />

Выход:

Изображение 2266

61

@Ben Koehler, этот префект! Я сделал небольшую модификацию, так что использование одного экземпляра сборщика дат более одного раза работает так, как ожидалось. Без этой модификации дата обрабатывается некорректно, а выбранная ранее дата не выделяется.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css">
    <script type="text/javascript">
    $(function() {
        $('.date-picker').datepicker( {
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            dateFormat: 'MM yy',
            onClose: function(dateText, inst) { 
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                $(this).datepicker('setDate', new Date(year, month, 1));
            },
            beforeShow : function(input, inst) {
                var datestr;
                if ((datestr = $(this).val()).length > 0) {
                    year = datestr.substring(datestr.length-4, datestr.length);
                    month = jQuery.inArray(datestr.substring(0, datestr.length-5), $(this).datepicker('option', 'monthNamesShort'));
                    $(this).datepicker('option', 'defaultDate', new Date(year, month, 1));
                    $(this).datepicker('setDate', new Date(year, month, 1));
                }
            }
        });
    });
    </script>
    <style>
    .ui-datepicker-calendar {
        display: none;
        }
    </style>
</head>
<body>
    <label for="startDate">Date :</label>
    <input name="startDate" id="startDate" class="date-picker" />
</body>
</html>
18

Вышеуказанные ответы довольно хороши. Моя единственная жалоба заключается в том, что вы не можете очистить значение после его установки. Также я предпочитаю подход с расширением-jquery-like-a-plugin.

Это работает идеально для меня:

$.fn.monthYearPicker = function(options) {
    options = $.extend({
        dateFormat: "MM yy",
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        showAnim: ""
    }, options);
    function hideDaysFromCalendar() {
        var thisCalendar = $(this);
        $('.ui-datepicker-calendar').detach();
        // Also fix the click event on the Done button.
        $('.ui-datepicker-close').unbind("click").click(function() {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            thisCalendar.datepicker('setDate', new Date(year, month, 1));
        });
    }
    $(this).datepicker(options).focus(hideDaysFromCalendar);
}

Затем вызовите так:

$('input.monthYearPicker').monthYearPicker();
  • 2
    в конце концов, я отказываюсь от этого, потому что это неработоспособно, так как события onSelect и / или onChangeMonthYear и / или onClose либо не запускаются, либо не получают правильные значения, либо, при переопределении, заставляют виджет перестать работать
10
<style>
.ui-datepicker table{
    display: none;
}

<script type="text/javascript">
$(function() {
    $( "#manad" ).datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'yy-mm',
        onClose: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        },
        beforeShow : function(input, inst) {
            if ((datestr = $(this).val()).length > 0) {
                actDate = datestr.split('-');
                year = actDate[0];
                month = actDate[1]-1;
                $(this).datepicker('option', 'defaultDate', new Date(year, month));
                $(this).datepicker('setDate', new Date(year, month));
            }
        }
    });
});

Это решит проблему =) Но мне нужен timeFormat yyyy-mm

Только в FF4, но

  • 0
    "yy" в JQuery - это четырехзначный год. Если это то, что вы хотите, вы только что достигли этого.
8

Вот что я придумал. Он скрывает календарь, не требуя дополнительного блока стиля, и добавляет четкую кнопку для решения проблемы неспособности очистить значение после нажатия на вход. Также хорошо работает с несколькими месячными пиксерами на одной странице.

HTML:

<input type='text' class='monthpicker'>

JavaScript:

$(".monthpicker").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "yy-mm",
    showButtonPanel: true,
    currentText: "This Month",
    onChangeMonthYear: function (year, month, inst) {
        $(this).val($.datepicker.formatDate('yy-mm', new Date(year, month - 1, 1)));
    },
    onClose: function(dateText, inst) {
        var month = $(".ui-datepicker-month :selected").val();
        var year = $(".ui-datepicker-year :selected").val();
        $(this).val($.datepicker.formatDate('yy-mm', new Date(year, month, 1)));
    }
}).focus(function () {
    $(".ui-datepicker-calendar").hide();
}).after(
    $("<a href='javascript: void(0);'>clear</a>").click(function() {
        $(this).prev().val('');
    })
);
8

У меня была такая же потребность сегодня, и я нашел это на github, работает с jQueryUI и имеет возможность выбора месяца вместо дней в календаре

https://github.com/thebrowser/jquery.ui.monthpicker

5

Я собрал многие из вышеприведенных хороших ответов и пришел к следующему:

    $('#payCardExpireDate').datepicker(
            {
                dateFormat: "mm/yy",
                changeMonth: true,
                changeYear: true,
                showButtonPanel: true,
                onClose: function(dateText, inst) { 
                    var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                    var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                    $(this).datepicker('setDate', new Date(year, month, 1)).trigger('change');
                },
                beforeShow : function(input, inst) {
                    if ((datestr = $(this).val()).length > 0) {
                        year = datestr.substring(datestr.length-4, datestr.length);
                        month = datestr.substring(0, 2);
                        $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
                        $(this).datepicker('setDate', new Date(year, month-1, 1));
                    }
                }
            }).focus(function () {
                $(".ui-datepicker-calendar").hide();
                $("#ui-datepicker-div").position({
                    my: "center top",
                    at: "center bottom",
                    of: $(this)
                });
            });

Это доказано, что он работает, но сталкивается с множеством ошибок, поэтому мне пришлось заплатить в нескольких местах datepicker:

if($.datepicker._get(inst, "dateFormat") === "mm/yy")
{
    $(".ui-datepicker-calendar").hide();
}

patch1: в _showDatepicker: для сглаживания скрыть;

patch2: in _checkOffset: для корректировки положения выбора месяца (в противном случае, когда поле находится в нижней части браузера, проверка смещения выключена);

patch3: in onClose of _hideDatepicker: в противном случае при закрытии полей даты будут мигать в течение очень короткого периода, что очень раздражает.

Я знаю, что мое исправление было далек от хорошего, но пока оно работает. Надеюсь, что это поможет.

  • 0
    Просто добавьте эту строку в beforeShow: {inst.dpDiv.addClass ('month_year_datepicker')}. мигание дат прекратится :). Также я думаю, что .focus тогда не понадобится
  • 0
    jsfiddle.net/DBpJe/5106
5

Мне понадобился сборщик за месяц/год для двух полей (From и To), и когда один был выбран, Max/Min был установлен на другом... a la picking авиалинии. У меня возникли проблемы с настройкой max и min... даты другого поля будут стерты. Благодаря нескольким из вышеупомянутых сообщений... Я, наконец, понял это. Вы должны установить параметры и даты в очень определенном порядке.

Смотрите эту скрипту для полного решения: Месяц/Год Picker @JSFiddle

код:

var searchMinDate = "-2y";
var searchMaxDate = "-1m";
if ((new Date()).getDate() <= 5) {
    searchMaxDate = "-2m";
}
$("#txtFrom").datepicker({
    dateFormat: "M yy",
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    showAnim: "",
    minDate: searchMinDate,
    maxDate: searchMaxDate,
    showButtonPanel: true,
    beforeShow: function (input, inst) {
        if ((datestr = $("#txtFrom").val()).length > 0) {
            var year = datestr.substring(datestr.length - 4, datestr.length);
            var month = jQuery.inArray(datestr.substring(0, datestr.length - 5), "#txtFrom").datepicker('option', 'monthNamesShort'));
        $("#txtFrom").datepicker('option', 'defaultDate', new Date(year, month, 1));
                $("#txtFrom").datepicker('setDate', new Date(year, month, 1));
            }
        },
        onClose: function (input, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $("#txtFrom").datepicker('option', 'defaultDate', new Date(year, month, 1));
            $("#txtFrom").datepicker('setDate', new Date(year, month, 1));
            var to = $("#txtTo").val();
            $("#txtTo").datepicker('option', 'minDate', new Date(year, month, 1));
            if (to.length > 0) {
                var toyear = to.substring(to.length - 4, to.length);
                var tomonth = jQuery.inArray(to.substring(0, to.length - 5), $("#txtTo").datepicker('option', 'monthNamesShort'));
                $("#txtTo").datepicker('option', 'defaultDate', new Date(toyear, tomonth, 1));
                $("#txtTo").datepicker('setDate', new Date(toyear, tomonth, 1));
            }
        }
    });
    $("#txtTo").datepicker({
        dateFormat: "M yy",
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        showAnim: "",
        minDate: searchMinDate,
        maxDate: searchMaxDate,
        showButtonPanel: true,
        beforeShow: function (input, inst) {
            if ((datestr = $("#txtTo").val()).length > 0) {
                var year = datestr.substring(datestr.length - 4, datestr.length);
                var month = jQuery.inArray(datestr.substring(0, datestr.length - 5), $("#txtTo").datepicker('option', 'monthNamesShort'));
                $("#txtTo").datepicker('option', 'defaultDate', new Date(year, month, 1));
                $("#txtTo").datepicker('setDate', new Date(year, month, 1));
            }
        },
        onClose: function (input, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $("#txtTo").datepicker('option', 'defaultDate', new Date(year, month, 1));
            $("#txtTo").datepicker('setDate', new Date(year, month, 1));
            var from = $("#txtFrom").val();
            $("#txtFrom").datepicker('option', 'maxDate', new Date(year, month, 1));
            if (from.length > 0) {
                var fryear = from.substring(from.length - 4, from.length);
                var frmonth = jQuery.inArray(from.substring(0, from.length - 5), $("#txtFrom").datepicker('option', 'monthNamesShort'));
                $("#txtFrom").datepicker('option', 'defaultDate', new Date(fryear, frmonth, 1));
                $("#txtFrom").datepicker('setDate', new Date(fryear, frmonth, 1));
            }

        }
    });

Также добавьте это в блок стиля, как указано выше:

.ui-datepicker-calendar { display: none !important; }
4

Если вы ищете сборщик месяцев, попробуйте этот jquery.mtz.monthpicker

Это сработало для меня хорошо.

  • 0
    Ссылка мертва. Этот сайт не может быть достигнуто | DNS-адрес сервера lucianocosta.info не найден.
  • 1
    Вот обновленная ссылка: lucianocosta.com.br/jquery.mtz.monthpicker
4

Это только я или это не работает, как должно быть в IE (8)? Дата изменяется при нажатии, но датпикер открывается снова, пока вы на самом деле не щелкнете где-нибудь на странице, чтобы не сфокусироваться на поле ввода...

Я ищу решение этого.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css">
<script type="text/javascript">
$(function() {
    $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        onClose: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
});
</script>
<style>
.ui-datepicker-calendar {
    display: none;
    }
</style>
</head>
<body>
    <label for="startDate">Date :</label>
    <input name="startDate" id="startDate" class="date-picker" />
</body>
</html>
  • 1
    $ (Это) .datepicker ( 'выключить'); $ (this) .datepicker ('setDate', new Date (year, month, 1)); $ (Это) .datepicker ( 'включить'); Решает проблему.
  • 1
    Это не ответ
3

Добавьте еще одно простое решение

 $(function() {
    $('.monthYearPicker').datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'M yy'
    }).focus(function() {
        var thisCalendar = $(this);
        $('.ui-datepicker-calendar').detach();
        $('.ui-datepicker-close').click(function() {
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
thisCalendar.datepicker('setDate', new Date(year, month, 1));
        });
    });
});

http://jsfiddle.net/tmnasim/JLydp/
Особенности:

  • отображение только месяц/год
  • Добавляет значение месяца в поле ввода только при нажатии кнопки "Готово"
  • Нет "повторного открытия" при нажатии "Готово"
    ------------------------------------
    другое решение, которое хорошо работает для datepicker и monthpicker на той же странице: (также избегайте ошибки множественного нажатия на предыдущую кнопку в IE, что может произойти, если мы используем функцию фокуса)
    ссылка на скрипт JS
3

Как и многие другие, я столкнулся с многочисленными проблемами, пытающимися это сделать, и только комбинация выпущенных решений и, в конечном счете, большой взлом, чтобы сделать его идеальным, приземлила меня на решение.

Проблемы с другими решениями в этом потоке, которые я пробовал:

  • Выбор новой даты в datepicker также изменит (внутреннюю) дату других datepickers, поэтому, когда вы снова откроете другие (или попытаетесь получить их дату), они будут иметь другую дату, чем та, которая отображается в их назначенное поле ввода.
  • Датпикер не будет "помнить" дату, когда она будет открыта снова.
  • Код для манипулирования датами, используемыми подстрокой, поэтому он несовместим со всеми форматами.
  • "My monthpicker" только изменил поле ввода при его закрытии, а не когда значения были изменены.
  • Поле ввода не обновляется правильно, если вы вводите неверно отформатированную строку ввода для даты, а затем нажмите "Закрыть" на datepicker.
  • Я не могу иметь нормальных датпикеров, которые показывают дни, на той же странице, что и "месячные", которые не показывают дни.

Наконец-то я нашел способ исправить все эти проблемы. Первые четыре могут быть исправлены просто путем тщательного изучения того, как вы ссылаетесь на свои даты и месяцпикеры во внутреннем коде и, конечно же, выполняете ручное обновление ваших сборщиков. Это вы можете увидеть в примерах создания экземпляра внизу. Пятой проблеме может помочь добавление некоторого пользовательского кода в функции datepicker.

ПРИМЕЧАНИЕ. Вам не нужно использовать следующие сценарии monthpicker, чтобы исправить первые три проблемы в вашем обычном datepicker. Просто используйте экземпляр datepicker- script в нижней части этого сообщения.

Теперь, чтобы использовать monthpickers и исправить последнюю проблему, нам нужно отделить datepickers и monthpickers. Мы могли бы получить один из немногих jQuery-UI monthpicker addons, но некоторые из них не обладают гибкостью/способностью локализации, некоторые не поддерживают анимацию... так, что делать? Сбросьте свой "собственный" из кода datepicker!. Это дает вам полноценный месяцпикер со всеми функциями датпикера, без отображения дней.

Я поставил monthpicker js- script и сопровождающий CSS- script, используя метод, описанный ниже, с кодом jQuery-UI v1.11.1. Просто скопируйте эти фрагменты кода в два новых файла: monthpicker.js и monthpicker.css соответственно.


Вот процесс, который я прошел, чтобы клонировать исходную датупиксера и сделать ее месячным.

Если вам все равно, как я это сделал, прокрутите этот раздел и до строки "Теперь добавьте datepickers и monthpickers на страницу!"

Я взял весь javascript-код из jquery-ui-1.11.1.js, относящийся к их датапикеру, вставив его в новый js файл и заменив следующие строки:

  • "datepicker" == > "monthpicker"
  • "Datepicker" == > "Monthpicker"
  • "выбор даты" == > "сборщик месяцев"
  • "Выбор даты" == > "Выбор месяца"

Затем я удалил часть цикла for, которая создает весь дочерний календарь ui-datepicker-calendar (другие решения скрывают с помощью CSS). Это можно найти в функции _generateHTML: (inst).

Найдите строку, которая гласит:

"</div><table class='ui-datepicker-calendar'><thead>" +

Отметить все от после закрытия div-тега и до (и не, включая) строку, в которой он говорит:

drawMonth++;

Теперь это будет несчастливо, потому что нам нужно закрыть некоторые вещи. После этого закрывающего div-тега из ранее добавьте следующее:

";

Теперь код должен быть хорошо сложен. Здесь приведен фрагмент кода, показывающий, что вы должны были:

...other code...

calender += "<div class='ui-monthpicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
                (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") +
                (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") +
                this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
                    row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
                "</div>";
            drawMonth++;
            if (drawMonth > 11) {
                drawMonth = 0;
                drawYear++;
            }

...other code...

Затем я копирую/вставляю код из jquery-ui.css, относящийся к datepickers, в новый CSS файл и заменяю следующие строки:

  • "datepicker" == > "monthpicker"

Теперь добавьте datepickers и monthpickers на страницу!

Эти следующие фрагменты кода javascript работают с несколькими datepickers и/или месячными пиксерами на странице без вышеупомянутых проблем. Исправлено в основном с помощью '$ (this).' много:)

Первый script предназначен для обычного дампикера, а второй для "новых" месячных пиксеров.

Прокомментированный .after, который позволяет создать некоторый элемент для очистки поля ввода, украден из ответа Пола Ричардса.

Я использую формат "MM yy" в своем месяцепиксере и формат "yy-mm-dd" в своем дампике, но он полностью совместим со всеми форматами, поэтому вы бесплатно использовать то, что вы хотите. Просто измените параметр "dateFormat". Стандартные опции "showButtonPanel", "showAnim" и "yearRange", конечно же, необязательны и настраиваются по вашему желанию.


Добавление параметра datepicker

Создание экземпляра Datepicker. Это происходит от 90 лет назад и до наших дней. Это поможет вам сохранить правильное поле ввода, особенно если вы задаете параметры defaultDate, minDate и maxDate, но можете его обработать, если вы этого не сделаете. Он будет работать с любым выбранным вами форматом даты.

        $('#MyDateTextBox').datepicker({
            dateFormat: 'yy-mm-dd',
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            showMonthAfterYear: true,
            showWeek: true,
            showAnim: "drop",
            constrainInput: true,
            yearRange: "-90:",
            minDate: new Date((new Date().getFullYear() - 90), new Date().getMonth(), new Date().getDate()),
            maxDate: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()),
            defaultDate: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()),

            onClose: function (dateText, inst) {
                // When onClose is called after we have clicked a day (and not clicked 'Close' or outside the datepicker), the input-field is automatically
                // updated with a valid date-string. They will always pass, because minDate and maxDate are already enforced by the datepicker UI.
                // This try is to catch and handle the situations, where you open the datepicker, and manually type in an invalid date in the field,
                // and then close the datepicker by clicking outside the datepicker, or click 'Close', in which case no validation takes place.
                try {
                    // If datepicker can parse the date using our formatstring, the instance will automatically parse
                    // and apply it for us (after the onClose is done).
                    // If the input-string is invalid, 'parseDate' will throw an exception, and go to our catch.
                    // If the input-string is EMPTY, then 'parseDate' will NOT throw an exception, but simply return null!
                    var typedDate = $.datepicker.parseDate($(this).datepicker('option', 'dateFormat'), $(this).val());

                    // typedDate will be null if the entered string is empty. Throwing an exception will force the datepicker to
                    // reset to the last set default date.
                    // You may want to just leave the input-field empty, in which case you should replace 'throw "No date selected";' with 'return;'
                    if (typedDate == null)throw "No date selected";

                    // We do a manual check to see if the date is within minDate and maxDate, if they are defined.
                    // If all goes well, the default date is set to the new date, and datepicker will apply the date for us.
                    var minDate = $(this).datepicker("option", "minDate");
                    var maxDate = $(this).datepicker("option", "maxDate");
                    if (minDate !== null && typedDate < minDate) throw "Date is lower than minDate!";
                    if (maxDate !== null && typedDate > maxDate) throw "Date is higher than maxDate!";

                    // We update the default date, because the date seems valid.
                    // We do not need to manually update the input-field, as datepicker has already done this automatically.
                    $(this).datepicker('option', 'defaultDate', typedDate);
                }
                catch (err) {
                    console.log("onClose: " + err);
                    // Standard behavior is that datepicker does nothing to fix the value of the input field, until you choose
                    // a new valid date, by clicking on a day.
                    // Instead, we set the current date, as well as the value of the input-field, to the last selected (and
                    // accepted/validated) date from the datepicker, by getting its default date. This only works, because
                    // we manually change the default date of the datepicker whenever a new date is selected, in both 'beforeShow'
                    // and 'onClose'.
                    var date = $(this).datepicker('option', 'defaultDate');
                    $(this).val($.datepicker.formatDate($(this).datepicker('option', 'dateFormat'), date));
                    $(this).datepicker('setDate', date);
                }
            },

            beforeShow: function (input, inst) {
                // beforeShow is particularly irritating when initializing the input-field with a date-string.
                // The date-string will be parsed, and used to set the currently selected date in the datepicker.
                // BUT, if it is outside the scope of the minDate and maxDate, the text in the input-field is not
                // automatically updated, only the internal selected date, until you choose a new date (or, because
                // of our onClose function, whenever you click close or click outside the datepicker).
                // We want the input-field to always show the date that is currently chosen in our datepicker,
                // so we do some checks to see if it needs updating. This may not catch ALL cases, but these are
                // the primary ones: invalid date-format; date is too early; date is too late.
                try {
                    // If datepicker can parse the date using our formatstring, the instance will automatically parse
                    // and apply it for us (after the onClose is done).
                    // If the input-string is invalid, 'parseDate' will throw an exception, and go to our catch.
                    // If the input-string is EMPTY, then 'parseDate' will NOT throw an exception, but simply return null!
                    var typedDate = $.datepicker.parseDate($(this).datepicker('option', 'dateFormat'), $(this).val());

                    // typedDate will be null if the entered string is empty. Throwing an exception will force the datepicker to
                    // reset to the last set default date.
                    // You may want to just leave the input-field empty, in which case you should replace 'throw "No date selected";' with 'return;'
                    if (typedDate == null)throw "No date selected";

                    // We do a manual check to see if the date is within minDate and maxDate, if they are defined.
                    // If all goes well, the default date is set to the new date, and datepicker will apply the date for us.
                    var minDate = $(this).datepicker("option", "minDate");
                    var maxDate = $(this).datepicker("option", "maxDate");
                    if (minDate !== null && typedDate < minDate) throw "Date is lower than minDate!";
                    if (maxDate !== null && typedDate > maxDate) throw "Date is higher than maxDate!";

                    // We update the input-field, and the default date, because the date seems valid.
                    // We also manually update the input-field, as datepicker does not automatically do this when opened.
                    $(this).val($.datepicker.formatDate($(this).datepicker('option', 'dateFormat'), typedDate));
                    $(this).datepicker('option', 'defaultDate', typedDate);
                }
                catch (err) {
                    // Standard behavior is that datepicker does nothing to fix the value of the input field, until you choose
                    // a new valid date, by clicking on a day.
                    // We want the same behavior when opening the datepicker, so we set the current date, as well as the value
                    // of the input-field, to the last selected (and accepted/validated) date from the datepicker, by getting
                    // its default date. This only works, because we manually change the default date of the datepicker whenever
                    // a new date is selected, in both 'beforeShow' and 'onClose', AND have a default date set in the datepicker options.
                    var date = $(this).datepicker('option', 'defaultDate');
                    $(this).val($.datepicker.formatDate($(this).datepicker('option', 'dateFormat'), date));
                    $(this).datepicker('setDate', date);
                }
            }
        })
    //.after( // this makes a link labeled "clear" appear to the right of the input-field, which clears the text in it
    //    $("<a href='javascript: void(0);'>clear</a>").click(function() {
    //        $(this).prev().val('');
    //    })
    //)
    ;

Добавление monthpicker

Включите файл monthpicker.js и файл monthpicker.css на странице, в которой вы хотите использовать месячные.

Создание экземпляра Monthpicker Значение, полученное из этого месяца, всегда является ПЕРВЫМ днем ​​выбранного месяца. Начинается в текущем месяце и колеблется от 100 лет назад и 10 лет в будущем.

    $('#MyMonthTextBox').monthpicker({
        dateFormat: 'MM yy',
        changeMonth: true,
        changeYear: true,
        showMonthAfterYear: true,
        showAnim: "drop",
        constrainInput: true,
        yearRange: "-100Y:+10Y",
        minDate: new Date(new Date().getFullYear() - 100, new Date().getMonth(), 1),
        maxDate: new Date((new Date().getFullYear() + 10), new Date().getMonth(), 1),
        defaultDate: new Date(new Date().getFullYear(), new Date().getMonth(), 1),

        // Monthpicker functions
        onClose: function (dateText, inst) {
            var date = new Date(inst.selectedYear, inst.selectedMonth, 1);
            $(this).monthpicker('option', 'defaultDate', date);
            $(this).monthpicker('setDate', date);
        },

        beforeShow: function (input, inst) {
            if ($(this).monthpicker("getDate") !== null) {
                // Making sure that the date set is the first of the month.
                if($(this).monthpicker("getDate").getDate() !== 1){
                    var date = new Date(inst.selectedYear, inst.selectedMonth, 1);
                    $(this).monthpicker('option', 'defaultDate', date);
                    $(this).monthpicker('setDate', date);
                }
            } else {
                // If the date is null, we reset it to the defaultDate. Make sure that the defaultDate is always set to the first of the month!
                $(this).monthpicker('setDate', $(this).monthpicker('option', 'defaultDate'));
            }
        },
        // Special monthpicker function!
        onChangeMonthYear: function (year, month, inst) {
            $(this).val($.monthpicker.formatDate($(this).monthpicker('option', 'dateFormat'), new Date(year, month - 1, 1)));
        }
    })
    //.after( // this makes a link labeled "clear" appear to the right of the input-field, which clears the text in it
    //    $("<a href='javascript: void(0);'>clear</a>").click(function() {
    //        $(this).prev().val('');
    //    })
    //)
    ;

Что это! Это все, что вам нужно, чтобы сделать месяцпик.

Я не могу заставить работать jsfiddle с этим, но он работает для меня в моем проекте ASP.NET MVC. Просто делайте то, что обычно делаете, чтобы добавить датупиксера на свою страницу, и включите вышеупомянутые скрипты, возможно, изменив селектор (что означает $( "# MyMonthTextBox" )) на что-то, что работает для вас.

Я надеюсь, что это поможет кому-то.

Ссылки на пастухи для некоторых дополнительных установок даты и месяца:

  • Monthpicker, работающий в последний день месяца. Дата, которую вы получаете от этого месяца, всегда будет последним днем ​​месяца.

  • Два сотрудничающих месяцапинга; "start" работает над первым месяцем, и "конец" работает над последним месяцем. Они оба ограничены друг другом, поэтому, выбрав месяц на "конце", который перед выбранным месяцем на "старт" , изменит "старт" на тот же месяц, что и "конец" . И наоборот. ДОПОЛНИТЕЛЬНО: при выборе месяца на "старт" , "minDate" устанавливается на "конец" . Чтобы удалить эту функцию, закомментируйте одну строку в onClose (прочитайте комментарии).

  • Два сотрудничающих датпикера; Они оба ограничены друг другом, поэтому, выбрав дату в конце, которая перед выбранной датой на "старт" , изменит "старт" на тот же месяц, что и "конец" . И наоборот. ДОПОЛНИТЕЛЬНО: при выборе даты на "старт" , "minDate" устанавливается на "конец" . Чтобы удалить эту функцию, закомментируйте одну строку в onClose (прочитайте комментарии).

3

Сделал несколько уточнений для BrianS почти идеального ответа выше:

  • Я переопределял значение, установленное в шоу, потому что я думаю, что в этом случае он делает его немного читабельнее (хотя я новичок в немного другом формате)

  • Мой клиент не нуждался в календаре, поэтому я добавил добавление класса show/hide для этого, не затрагивая других датпикеров. Удаление класса происходит по таймеру, чтобы избежать свертывания таблицы, когда датпикер исчезает, что кажется очень заметным в IE.

РЕДАКТИРОВАТЬ: Одна проблема, оставленная для решения этой проблемы, заключается в том, что нет способа опорочить датупиксера - очистить поле и щелкнуть, и он будет повторно заполнен выбранной датой.

EDIT2: мне это не удалось решить (т.е. без добавления отдельной кнопки Clear рядом со входом), поэтому он просто использовал это: https://github.com/thebrowser/jquery.ui.monthpicker - если кто-то может получить стандартный пользовательский интерфейс, чтобы это было потрясающе.

    $('.typeof__monthpicker').datepicker({
        dateFormat: 'mm/yy',
        showButtonPanel:true,
        beforeShow: 
            function(input, dpicker)
            {                           
                if(/^(\d\d)\/(\d\d\d\d)$/.exec($(this).val()))
                {
                    var d = new Date(RegExp.$2, parseInt(RegExp.$1, 10) - 1, 1);

                    $(this).datepicker('option', 'defaultDate', d);
                    $(this).datepicker('setDate', d);
                }

                $('#ui-datepicker-div').addClass('month_only');
            },
        onClose: 
            function(dt, dpicker)
            {
                setTimeout(function() { $('#ui-datepicker-div').removeClass('month_only') }, 250);

                var m = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var y = $("#ui-datepicker-div .ui-datepicker-year :selected").val();

                $(this).datepicker('setDate', new Date(y, m, 1));
            }
    });

Вам также нужно это правило стиля:

#ui-datepicker-div.month_only .ui-datepicker-calendar {
display:none
}
3

У меня была проблема выбора даты, смешанной с сборщиком месяцев. Я решил это так.

    $('.monthpicker').focus(function()
    {
    $(".ui-datepicker-calendar").show();
    }).datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM/yy',
        create: function (input, inst) { 

         },
        onClose: function(dateText, inst) { 
            var month = 1+parseInt($("#ui-datepicker-div .ui-datepicker-month :selected").val());           
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();

        }
    });
3

Если кто-то хочет, чтобы и для нескольких календарей было не так сложно добавить эту функцию в jquery ui. с минимальным поиском:

x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?f:n:"")+(

добавьте это перед x

var accl = ''; if(this._get(a,"justMonth")) {accl = ' ui-datepicker-just_month';}

выполните поиск

<table class="ui-datepicker-calendar

и замените его на

<table class="ui-datepicker-calendar'+accl+'

также выполните поиск

this._defaults={

замените его на

this._defaults={justMonth:false,

для css вы должны использовать:

.ui-datepicker table.ui-datepicker-just_month{
    display: none;
}

после этого все делается, просто перейдите к вашим желаемым функциям инициализации datepicker и предоставите настройку var

$('#txt_month_chart_view').datepicker({
    changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        justMonth: true,
        create: function(input, inst) {
            $(".ui-datepicker table").addClass("badbad");
        },
        onClose: function(dateText, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
});

justMonth: true является ключевым здесь:)

3

после копания jQueryUI.com для datepicker, здесь мой вывод и ответ на ваш вопрос.

Во-первых, я бы сказал нет на ваш вопрос. Вы не можете использовать jQueryUI datepicker для выбора только месяца и года. Он не поддерживается. Он не имеет функции обратного вызова для этого.

Но вы можете взломать его, чтобы отображать только месяц и год, используя css, чтобы скрыть дни и т.д. И я думаю, что не будет смысла, потому что вам нужны даты, которые нужно щелкнуть чтобы выбрать дату.

Я могу сказать, что вам просто нужно использовать другой datepicker. Как и предложил Роджер.

3

Вахт о: http://www.mattkruse.com/javascript/calendarpopup/

Выберите пример выбора месяца

  • 0
    Поскольку я уже использую jquery datepicker, я предпочитаю использовать его или составить месяц и год вручную.
2

У меня были определенные трудности с принятым ответом, и никто другой не мог быть использован с минимальными усилиями в качестве базы. Итак, я решил настроить последнюю версию принятого ответа, пока он не удовлетворит хотя бы минимальные стандарты кодирования/повторного использования JS.

Вот способ гораздо более чистого решения, чем 3-я (последняя) версия Бен Кёлер принял ответ. Более того, он будет:

  • работают не только с форматом mm/yy, но и с любым другим, включая OP MM yy.
  • не скрывать календарь других датпикеров на странице.
  • не косвенно загрязняет глобальный объект JS с помощью datestr, month, year и т.д.

Проверьте это:

$('.date-picker').datepicker({
    dateFormat: 'MM yy',
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    onClose: function (dateText, inst) {
        var isDonePressed = inst.dpDiv.find('.ui-datepicker-close').hasClass('ui-state-hover');
        if (!isDonePressed)
            return;

        var month = inst.dpDiv.find('.ui-datepicker-month').find(':selected').val(),
            year = inst.dpDiv.find('.ui-datepicker-year').find(':selected').val();

        $(this).datepicker('setDate', new Date(year, month, 1)).change();
        $('.date-picker').focusout();
    },
    beforeShow: function (input, inst) {
        var $this = $(this),
            // For the simplicity we suppose the dateFormat will be always without the day part, so we
            // manually add it since the $.datepicker.parseDate will throw if the date string doesn't contain the day part
            dateFormat = 'd ' + $this.datepicker('option', 'dateFormat'),
            date;

        try {
            date = $.datepicker.parseDate(dateFormat, '1 ' + $this.val());
        } catch (ex) {
            return;
        }

        $this.datepicker('option', 'defaultDate', date);
        $this.datepicker('setDate', date);

        inst.dpDiv.addClass('datepicker-month-year');
    }
});

И все, что вам нужно, это следующий CSS где-то рядом:

.datepicker-month-year .ui-datepicker-calendar {
    display: none;
}

Что это. Надеюсь, что это поможет сэкономить время для дальнейших читателей.

  • 1
    Просто и к вашему сведению. Строка 'inst.dpDiv.addClass (' datepicker-month-year ');' добавит целый месяц-год к календарному разделу datepicker, то есть, если есть другие поля даты с datepicker, они перестанут работать из-за этого. Поскольку для календаря есть только один элемент div, было бы интересно добавить '$ ('. Datepicker-month-year '). RemoveClass (' datepicker-month-year ');' использование beforeShow для любых других сборщиков дат, для которых требуется традиционный календарь. ИЛИ, удалите класс, когда вы потеряете фокус. Но я не мог найти ничего, связанного с этим в API
  • 1
    Это полный ответ, который должен использовать каждый. Самой большой проблемой, которая была решена для меня, было всплывающее окно ввода даты по умолчанию с текущим месяцем и годом, независимо от того, что уже в нем. Этот ответ исправил это.
2

Мне понравился ответ @user1857829 и его подход "расширение-jquery-like-a-plugin". Я просто сделал модификацию litte, так что, когда вы меняете месяц или год каким-либо образом, сборщик фактически записывает дату в поле. Я обнаружил, что мне понравится это поведение после его использования.

jQuery.fn.monthYearPicker = function(options) {
  options = $.extend({
    dateFormat: "mm/yy",
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    showAnim: "",
    onChangeMonthYear: writeSelectedDate
  }, options);
  function writeSelectedDate(year, month, inst ){
   var thisFormat = jQuery(this).datepicker("option", "dateFormat");
   var d = jQuery.datepicker.formatDate(thisFormat, new Date(year, month-1, 1));
   inst.input.val(d);
  }
  function hideDaysFromCalendar() {
    var thisCalendar = $(this);
    jQuery('.ui-datepicker-calendar').detach();
    // Also fix the click event on the Done button.
    jQuery('.ui-datepicker-close').unbind("click").click(function() {
      var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
      var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
      thisCalendar.datepicker('setDate', new Date(year, month, 1));
      thisCalendar.datepicker("hide");
    });
  }
  jQuery(this).datepicker(options).focus(hideDaysFromCalendar);
}
1

Я попробовал различные решения, предоставленные здесь, и они отлично работали, если вы просто хотели пару падений.

Лучший (по внешнему виду и т.д.) 'picker' (https://github.com/thebrowser/jquery.ui.monthpicker), предложенный здесь, в основном представляет собой копию старой версии jquery- ui datepicker с _generateHTML переписан. Тем не менее, я нашел, что он больше не играет хорошо с текущим jquery-ui (1.10.2) и имеет другие проблемы (не закрывается на esc, не закрывается при открытии другого виджета, имеет жестко закрепленные стили).

Вместо того, чтобы пытаться исправить этот monthpicker и вместо того, чтобы повторно выполнить тот же процесс с последним datepicker, я пошел с подключением к соответствующим частям существующего выбора даты.

Это включает переопределение:

  • _generateHTML (для создания разметки месяца)
  • parseDate (поскольку он не нравится, когда нет компонента дня),
  • _selectDay (поскольку datepicker использует .html(), чтобы получить значение дня)

Поскольку этот вопрос немного старый и уже хорошо ответил, здесь только _selectDay переопределяет, чтобы показать, как это было сделано:

jQuery.datepicker._base_parseDate = jQuery.datepicker._base_parseDate || jQuery.datepicker.parseDate;
jQuery.datepicker.parseDate = function (format, value, settings) {
    if (format != "M y") return jQuery.datepicker._hvnbase_parseDate(format, value, settings);
    // "M y" on parse gives error as doesn't have a day value, so 'hack' it by simply adding a day component
    return jQuery.datepicker._hvnbase_parseDate("d " + format, "1 " + value, settings);
};

Как было сказано, это старый вопрос, но я счел его полезным, поэтому хотел добавить обратную связь с альтернативным решением.

1

Мне также нужен был сборщик. Я сделал простой год с заголовком и 3 строки по 4 месяца ниже. Проверьте это: Простой сборщик событий с jQuery.

1

Я знаю немного позднего ответа, но за пару дней до этого у меня была такая же проблема, и я пришел с хорошим и гладким решением. Сначала я нашел этот отличный выбор даты здесь

Затем я только что обновил класс CSS (jquery.calendarPicker.css), который поставляется с примером вроде этого:

.calMonth {
  /*border-bottom: 1px dashed #666;
  padding-bottom: 5px;
  margin-bottom: 5px;*/
}

.calDay 
{
    display:none;
}

Плагин запускает событие DateChanged при изменении чего-либо, поэтому не имеет значения, что вы не нажимаете на день (и он подходит как год и месяц)

Надеюсь, что это поможет!

0

Спасибо за решение Бен Кёлер.

Тем не менее, у меня была проблема с несколькими экземплярами datepickers, некоторые из которых были необходимы при выборе дня. Решение Ben Koehler (в редакции 3) работает, но скрывает выбор дня во всех случаях. Вот обновление, которое решает эту проблему:

$('.date-picker').datepicker({
    dateFormat: "mm/yy",
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    onClose: function(dateText, inst) {
        if($('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1) {
            $(this).datepicker(
                'setDate',
                new Date(
                    $("#ui-datepicker-div .ui-datepicker-year :selected").val(),
                    $("#ui-datepicker-div .ui-datepicker-month :selected").val(),
                    1
                )
            ).trigger('change');
            $('.date-picker').focusout();
        }
        $("#ui-datepicker-div").removeClass("month_year_datepicker");
    },
    beforeShow : function(input, inst) {
        if((datestr = $(this).val()).length > 0) {
            year = datestr.substring(datestr.length-4, datestr.length);
            month = datestr.substring(0, 2);
            $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
            $(this).datepicker('setDate', new Date(year, month-1, 1));
            $("#ui-datepicker-div").addClass("month_year_datepicker");
        }
    }
});
0

Каждый здесь получает значение месяца, года, подобного этому,

var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var month = $("#ui-datepicker-div .ui-datepicker-year :selected").val();

Но сейчас я сталкиваюсь с проблемой при извлечении значений из > и <. Потому что оно дает нам значение выбранного значения в выпадающем списке, поэтому оно дает нам значения old not new.

Итак, согласно документу JQuery UI: - http://api.jqueryui.com/datepicker/. Мы можем напрямую получать год, месяц из функции. Для других значений, таких как day и т.д., мы можем легко получить к ним доступ через inst объект функции jqueryUI. Мы можем получить доступ к inst, как показано ниже,

 var day = inst.selectedDay;

Итак, используя onChangeMonthYear, мы можем получать текущие значения месяца, года и дня непосредственно из функции, поэтому нет необходимости выработать выбранное значение.

HTML: -

<input type='text' class='monthpicker'>

Script: -

$( function() {
    $(".monthPicker").datepicker({
        dateFormat: 'MM yy',
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        beforeShow: true,
        onChangeMonthYear: function(year , month , inst) {

            setTimeout(function() {
               $('.ui-datepicker-calendar').hide();
            });
            var day = inst.selectedDay;
            month = month;
            year = year;
            var current_date =  year + "-" + month + "-" + day ;                
        }
    });
    $(".monthPicker").focus(function () {
        $(".ui-datepicker-calendar").hide();
        $("#ui-datepicker-div").position({
            my: "center top",
            at: "center bottom",
            of: $(this)
        });
    });
});

Примечание: - Это может быть полезно, когда мы хотим встроить месяцпиксера. Просто замените поле ввода на деление, и мы можем использовать его inline при использовании inline, убедитесь, что вы используете onChangeMonthYear,

Для Inline MonthPicker: -

<div class="monthpicker">  </div>
0

для monthpicker, используя JQuery v 1.7.2, у меня есть следующий javascript, который делает именно это

$l("[id$=txtDtPicker]").monthpicker({
showOn: "both",
buttonImage: "../../images/Calendar.png",
buttonImageOnly: true,
pattern: 'yyyymm', // Default is 'mm/yyyy' and separator char is not mandatory
monthNames: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']
});

-1

Используйте onSelect перезвонить и удалить часть года вручную и вручную установить текст в поле

  • 3
    Я думаю, что вы не читаете вопрос. Аану хочет «отобразить месяц и год (май 2010), а не календарь».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню