nazar-pc / PickMeUp

Really simple, powerful, customizable and lightweight standalone datepicker
BSD Zero Clause License
615 stars 191 forks source link

Небольшой баг с заполненным полем #26

Closed mxp100 closed 10 years ago

mxp100 commented 10 years ago

Если в текстовом поле уже присутствует какой либо текст и при попытке ввода в поле, появляется окно выбора даты с NaN. Решил небольшой правкой кода, сделал проверку в функции show на корректность созданного объекта Date, если некорректен, то присваиваю текущую дату.

nazar-pc commented 10 years ago

Если в текстовом поле есть текст - предполагается, что что он в том же формате, который указан в опции при инициализации. Можете указать что конкретно и где вы меняли (можно в виде pull request), я с радостью посмотрю?

mxp100 commented 10 years ago

Позор мне - гитом пользоваться не умею, слишком давно и плотно под svn(как нить изучу) Было: function show(force) { ... if ($this.is("input")) { $this.pickmeup("set_date", parseDate($this.val(), options.format, options.separator, options.locale)).keydown(function (e) { if (e.which == 9) { $this.pickmeup("hide"); } return false; }); Стало: function show(force) { ... if ($this.is("input")) { var parsedDate = parseDate($this.val(), options.format, options.separator, options.locale) if (isNaN(parsedDate.getTime())) { parsedDate = new Date; } $this.pickmeup("set_date", parsedDate).keydown(function (e) { if (e.which == 9) { $this.pickmeup("hide"); } return false; });

mxp100 commented 10 years ago

Просто далеко не всегда там может располагаться текст который соответствует формату. К примеру даже если на поле стоит обработчик плагина maskedinput по жаблону 99.99.9999 (для формата даты DD.MM.YYYY), то при клике на поле получается что он обрабатывает сразу точки и соответственно выдает NaNы.

nazar-pc commented 10 years ago

Сегодня выпущу патч версию с этим решением.

nazar-pc commented 10 years ago

Это не совсем корректное исправление, вот корректное: https://github.com/nazar-pc/PickMeUp/commit/766742a0892c5b4a7247aafeeeafe44de38c958c Новая версия 2.4.1 с исправлением этого бага уже доступна.