Метод обновления bootstrap datepicker, вызывающий проблемы

Я пытаюсь использовать загрузчик datepicker из eternicode, который является вилкой исходного средства выбора eyecon .

Я добавил пример jsfiddle того, что я пытаюсь сделать.

Внизу всех js в скрипте я инициализирую свой datepicker. Я добавил setTimout, чтобы смоделировать динамическое изменение даты datepickers. Я читал, где вам нужно вызвать datepicker('update'); после того, как вы выполните setDate, чтобы он обновил пользовательский интерфейс сборщиков.

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

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

HTML

<div class="input-append date" id="date-picker">
    <input class="span6" size="16" type="text">
    <span class="add-on"><i class=""></i></span>
</div>
var picker = $('#date-picker').datepicker({format:'M d, yyyy' });

var d = new Date();
d.setDate(d.getDate() + 1);

setTimeout(function(){
  picker.datepicker("setDate", d).datepicker('update');
},3000);

person me-me    schedule 08.08.2014    source источник
comment
ericB, вам следует обновить свой пример, чтобы использовать эту скрипку, которая очищает внешний код путем перемещения это к внешним ресурсам вместо того, чтобы держать его встроенным.   -  person KyleMit    schedule 08.08.2014


Ответы (2)


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

picker.datepicker('update', new Date(d.getFullYear(), d.getMonth(), d.getDate()));

Где d - желаемая дата.

person miron    schedule 08.08.2014
comment
+1, похоже, решает. вот упрощенная скрипка с этим ответом и внешними ссылками - person KyleMit; 08.08.2014
comment
Спасибо, Мирон, но я попробовал это в своем jsfiddle, как я указал выше, но он по-прежнему не обновляет пользовательский интерфейс правильно. picker.datepicker ('обновление', новая дата (d.getFullYear (), d.getMonth (), d.getDate () + 1)); - person me-me; 08.08.2014
comment
Ах, я заговорил слишком рано. Поэтому мне нужно было также удалить setDate и вместо этого просто использовать обновление. picker.datepicker ('обновление', дата); - person me-me; 08.08.2014
comment
Конечно, без datepicker("setDate", d) работает;) - person miron; 08.08.2014
comment
Вау, это был хороший день, потраченный впустую. Большое спасибо за то, что сообщили мне, что разрешены только год, месяц и число. Я действительно думаю, что в документации должно быть включено это для метода обновления. Спасибо Спасибо. - person me-me; 08.08.2014
comment
Мирон Я заметил, что если вы нажмете любую клавишу, когда у вас открыт сборщик, а затем, когда он закрывается, он добавляет новую дату к другой. Похоже, он снова запускает какое-то событие? Вот обновленная скрипка jsfiddle.net/chapster11/yqestkdf/17 - person me-me; 09.08.2014

закрой свой <input class="span6" size="16" type="text" / > , тогда вроде работает

может быть, посмотрите, что класс input-append делает

person birdspider    schedule 08.08.2014