Кнопка «Сегодня» в календаре JQuery UI Datepicker

Вторник, 01 Апр 2014 16:24

Недавно нужно было доработать календарь JQuery UI Datepicker. В настройках Datepicker можно задать показ кнопки «Сегодня» в левой нижней части календаря. Однако, при нажатии на кнопку происходит обычный возврат к сегодняшней дате, но не ее выбор. Если пользователь перемещается между месяцами, то кнопка быстро возвращает его к текущей дате.

Как и пользователи я понимаю кнопку «Сегодня», как выбор даты текущего дня с одновременным закрытием календаря.

В ходе очередных поисков по Интернету я пришел к следующему решению. После включения файла JQuery UI:

1
<script type="text/javascript" src="js/jquery.ui.datepicker-ru.js" language="javascript"></script>

необходимо добавить следующий код, чтобы переопределить функцию _gotoToday:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">// <![CDATA[
$(function () {
    var _gotoToday = $.datepicker._gotoToday;
    $.datepicker._gotoToday = function( id ) {
        var target = $( id ),
            inst = this._getInst( target[0] );
        if ( this._get( inst, 'gotoCurrent' ) && inst.currentDay ) {
            inst.selectedDay = inst.currentDay;
            inst.drawMonth = inst.selectedMonth = inst.currentMonth;
            inst.drawYear = inst.selectedYear = inst.currentYear;
        }
        else {
            var date = new Date();
            inst.selectedDay = date.getDate();
            inst.drawMonth = inst.selectedMonth = date.getMonth();
            inst.drawYear = inst.selectedYear = date.getFullYear();
        }
        this._selectDate( id, this._formatDate( inst, inst.selectedDay, inst.drawMonth, inst.drawYear ) );
    }
});
// ]]></script>

Решения, которые я видел в Интернете работают, но в самом лучшем варианте после закрытия календаря курсор остается в поле для ввода, что меня не устраивало. В моем варианте я это исправил.



Вы можете оставить отзыв. Пинг сейчас закрыт.

Ваш отзыв