1

我正在使用 Rails3.2.11并尝试同时使用jQuery UI Datepicker和Timepicker,但是在尝试使用 Datepicker 的minDateandmaxDate属性时遇到了问题。

我的一页视图(in 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

收录顺序为:

  1. jQuery (1.8.3)
  2. jQuery UJS jQuery UI(特别是自动完成、日期选择器和滑块)
  3. 时间选择器

现在,当我单击 datepicker 输入时,加载第一个视图(只有一个 datepicker,而不是 timepicker )在 Chrome JS 控制台中给我以下错误:

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);
};

奇怪的是,如果我从视图中删除minDateandmaxDate属性,错误就会消失 - 但我想使用这些选项。知道发生了什么吗?

谢谢

更新:我注意到如果我通过minDatemaxDate作为硬编码字符串,即

:minDate => "2000-01-01", :maxDate => "2014-01-01"

错误消失了。dateFormat我认为这意味着(某处..?)存在错误

4

1 回答 1

2

所以看起来 Timepicker 不理解相对日期。我认为 Timepicker 总是试图覆盖 Datepicker。使用:minDateand:maxDate设置为相对值(即+1y) Timepicker 会看到+1yyy-mm-dd例如之间的格式不匹配 - 它似乎没有首先将 转换为+1y具有格式的 Date 对象yy-mm-dd

我的解决方案是明确地放入 Date 对象:

:minDate => Date.today - 10.years, :maxDate => Date.today + 1.years

这真的不如+1y

在 Github 上提出的问题

于 2013-02-05T13:42:37.993 回答