1

私は Railsを使用しており、 jQuery UI の DatepickerTimepicker3.2.11の両方を使用しようとしていますが、Datepicker の プロパティとプロパティを使用しようとすると問題に直面しています。minDatemaxDate

1 ページのビュー ( 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. タイムピッカー

ここで、最初のビュー ( timepicker ではなく datepickerのみを持つ) をロードすると、datepicker 入力をクリックすると、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);
};

minDate奇妙なことに、ビューから属性と属性を削除するとmaxDate、エラーはなくなりますが、これらのオプションを使用したいと考えています。何が起こっているのですか?

ありがとう

更新:ハードコードされた文字列としてminDate渡した場合、つまりmaxDate

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

エラーはなくなります。dateFormatこれは、 (どこか..?)にエラーがあることを意味すると思います

4

1 に答える 1

2

そのため、Timepicker は相対的な日付を認識していないようです。Timepicker は常に Datepicker をオーバーライドしようとしていると思います。とを相対値 (つまり ) に設定する:minDateと、 Timepicker は と の間の形式の不一致を検出します。たとえば、最初にを format の Date オブジェクトに変換していないようです。:maxDate+1y+1yyy-mm-dd+1yyy-mm-dd

私にとっての解決策は、明示的に Date オブジェクトを入れることでした:

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

これは実際にはそれほど良くありません+1y

Githubで提起された問題

于 2013-02-05T13:42:37.993 に答える