JQuery DatePicker установить выбранную дату, на лету - PullRequest
112 голосов
/ 03 марта 2009

Как я могу динамически изменить выбранную дату в jquery Date picker? Я сказал, создал встроенный сборщик дат. Затем, через некоторое время, я хочу отобразить другую дату без воссоздания средства выбора даты с нуля.

Я попробовал метод setDate, но он не работал, и в doc .

не так много документации.

Есть еще один (расширенный?) Плагин здесь , но я хочу использовать плагин, который поставляется с jquery.ui.all.js.

Ответы [ 12 ]

169 голосов
/ 15 апреля 2009

Какую версию jQuery-UI вы используете? Я протестировал следующее с 1.6r6, 1.7 и 1.7.1, и оно работает:

//Set DatePicker to October 3, 2008
$('#dateselector').datepicker("setDate", new Date(2008,9,03) );
27 голосов
/ 22 сентября 2010

Убедитесь, что дата, которую вы пытаетесь установить, лежит в допустимом диапазоне дат, если заданы параметры minDate или maxDate.

10 голосов
/ 31 мая 2014

В этом примере показано, как использовать значение по умолчанию в раскрывающемся календаре и значение в текстовом поле. Также показано, как установить значение по умолчанию для предыдущей даты.

selectedDate - другая переменная, которая содержит текущую выбранную дату элемента управления календаря

    var date = new Date();
    date.setDate(date.getDate() - 1);

    $("#datepicker").datepicker({
        dateFormat: "yy-mm-dd",
        defaultDate: date,
        onSelect: function () {
            selectedDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
        }
    });

    $("#datepicker").datepicker("setDate", date);
7 голосов
/ 18 августа 2010

Отмечено, что для DatePicker Кейта Вуда (http://keith -wood.name / datepickRef.html ) работают следующие - обратите внимание, что установка даты по умолчанию является последней:

    $('#datepicker').datepick({
        minDate: 0,
        maxDate: '+145D',
        multiSelect: 7,
        renderer: $.datepick.themeRollerRenderer,
        ***defaultDate: new Date('1 January 2008')***
    });
5 голосов
/ 31 мая 2009

По некоторым причинам, в некоторых случаях я не мог заставить setDate работать.

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

var date = new Date(2008,9,3);
$("#your-input").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());
// Will display 9/3/2008 in your #your-input input
3 голосов
/ 25 августа 2018
$('.date-pick').datePicker().val(new Date()).trigger('change')

наконец, вот что я смотрю последние несколько часов! Мне нужно инициировать изменения, а не просто установить дату в текстовом поле!

2 голосов
/ 16 апреля 2015

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

$("#dateselector").datepicker("option", "defaultDate", new Date(2008,9,3));
2 голосов
/ 26 августа 2011

setDate только кажется, что проблема с встроенным указателем даты, используемым в пользовательском интерфейсе jquery, специфическая ошибка - InternalError: слишком много рекурсии.

1 голос
/ 18 декабря 2017

Это старая ветка, но я просто хочу дать некоторую информацию о том, как я ее использовал. Если вы хотите установить дату сегодня, вы можете просто применить ее, как показано ниже.

 $("#datepickerid").datepicker("setDate", "0");

Если вы хотите установить несколько дней до / после текущей даты, используйте символ -/+, обозначающий количество дней, которое вы хотите, как показано ниже.

 $("#datepickerid").datepicker("setDate", "-7");
 $("#datepickerid").datepicker("setDate", "+5");
0 голосов
/ 29 января 2019

В Html вы можете добавить поле ввода с помощью указателя даты, например:

<input class="form-control date-picker fromDates" id="myDate" type="text">

, а затем в java-скрипте инициализируйте ваш указатель даты и установите в качестве значения дату, такую ​​как

$('.fromDates').datepicker({
                maxDate: '0',
                dateFormat: "dd/mm/yy",
                changeYear: true,
                changeMonth: true,
                yearRange: "-100:+0"
            });

var myDateVal = moment('${value}').format('DD/MM/YYYY');
$('#myDate').datepicker().datepicker('setDate', myDateVal );

(Здесь атрибут fromdate показывает предыдущие даты текущей даты)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...