JQuery UI Datepicker и Timepicker конфликтуют с minDate и maxDate (Ошибка при разборе строки даты: отсутствует номер в позиции 0)
Я использую Rails 3.2.11
и я пытаюсь использовать как jQuery UI Datepicker, так и Timepicker, однако при попытке использовать minDate
а также maxDate
свойства Datepicker.
Мой взгляд на одну страницу (в HAML
), выглядит так:
.field_section
= f.label :date, "Date"
%br
= f.datepicker :date, :minDate => "-10y", :maxDate => "+1y", :dateFormat => "yy-mm-dd",
:constrainInput => true, :showOtherMonths => true, :size => 10
я имею jQuery UI 1.10
и все работает отлично.
Тем не менее, в совершенно отдельном виде, мне также нужен таймер, поэтому я включаю jquery-ui-timepicker-addon.js
файл (версия 1.20) в моем application.js
Порядок включения:
- jQuery (1.8.3)
- JQuery UJS JQuery UI (в частности, автозаполнение, DatePicker и слайдер)
- Timepicker
Теперь загрузка первого представления (в котором есть только указатель даты, а не указатель времени) выдает мне следующую ошибку в консоли Chrome JS, когда я нажимаю на вход DatePicker:
Error parsing the date string: Missing number at position 0
date string = -10y
date format = yy-mm-dd
Error parsing the date string: Missing number at position 0
date string = +1y
date format = yy-mm-dd
Что повторяется еще 5 или около того раз. Ошибки указывают на jquery-ui-timepicker-addon.js:1912
что бесполезно просто:
$.timepicker.log = function(err){
if(window.console)
console.log(err);
};
Странно, если я удалю minDate
а также maxDate
атрибуты с моей точки зрения, ошибки уходят - но я хочу использовать эти параметры. Есть идеи, что происходит?
Спасибо
Обновление: я заметил, если я прохожу minDate
а также maxDate
как жестко закодированные строки, т.е.
:minDate => "2000-01-01", :maxDate => "2014-01-01"
ошибки уходят. Я предполагаю, что это означает, что есть ошибка с dateFormat
(где-то..?)
1 ответ
Так что, похоже, Timepicker не понимает относительные даты. Я думаю Timepicker пытается всегда переопределить Datepicker. С :minDate
а также :maxDate
установить относительные значения (т. е. +1y
) Timepicker видит несоответствие формата между +1y
а также yy-mm-dd
например - кажется, что сначала не +1y
объекту Date с форматом yy-mm-dd
,
Решение для меня заключалось в том, чтобы в объект Date поместились детали:
:minDate => Date.today - 10.years, :maxDate => Date.today + 1.years
Что на самом деле не так хорошо, как +1y
Проблема поднята на Github