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

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

372
задан Alexander Abakumov 9 March 2018 в 20:25
поделиться

5 ответов

Вот хак (обновлен полный .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. для вышеприведенного примера: http://jsfiddle.net/DBpJe/7755/

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

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

420
ответ дан 23 November 2019 в 00:04
поделиться

Что о: http://www.mattkruse.com/javascript/calendarpopup/

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

2
ответ дан 23 November 2019 в 00:04
поделиться

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

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

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

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

3
ответ дан 23 November 2019 в 00:04
поделиться

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

-2
ответ дан 23 November 2019 в 00:04
поделиться

@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>
61
ответ дан 23 November 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: