Closed faiwer closed 8 years ago
Почитал тут issues
, понял что если установить в default_date
false, то авто-значение не устанавливается. До этого пробовал null
и оно помирало :) В остальном вопрос открытый.
По поводу первого да, недавно было добавлено. По воводу второго - не понял что конкретно не так. И да, лучше создавать два issue по одному на каждый вопрос, так проще следить.
Вот https://jsfiddle.net/gphnwbtv/ Как увидеть баг. Изначально input пуст. При клике по нему появится popup и default-ое значение. Раз появилось default значение, то должен быть вызван change. Он не вызывается. При blur-е (к примеру ткнуть просто в левую область, чтобы календарь исчез), тоже change не вызывается. А вызовется он только если выбрать дату мышью в календаре.
Ну а раз change при открытии календаря не вызывается, но по факту дата меняется, то мы и получаем рассинхронизацию модели и того, что пользователь видит на экране.
Согласен, буду благодарен за PR.
Should be fixed in 1a90a25
When calendar showing self popup, it change date to default (new Date). But that not "bubling" to change-callback, because inside used
pickmeup('set_date', date)
.Когда календарь показывает свой popup, он, при отсутствии значения, устанавливает новое (неплохо бы опцию добавить, чтобы он умел так не делать). Устанавливает новое он, используя
pickmeup('set_date', date)
. Оный метод почему-то не вызываетchange
-callback. Что приводит к тому, что значение то установлено в<input/>
, но оно не всплыло. Если используетсяknockoutjs
или что-то в таком же духе, это приводит к тому, что в модели значения нет, а пользователь его видит.change
-callback вызывается только вupdate_date
(options.change.apply(this, prepared_date);
). Я так и не понял баг ли это или фича. Временно проблему решил так:..., change: $el.change.bind($el), before_show: $el.change.bind($el), ...
. Спасает то, чтоbefore_show
вызывается рядом же.Или я что-то недопонял? :)