5

サイトのさまざまなフォームに ruby​​ gem simple_form を使用していますが、デフォルトでレンダリングされる日付入力を結合/折りたたむ方法があるかどうか疑問に思っていました:

= f.input :dob, label: "Date of Birth", as: :date, start_year: Time.now.year - 90, end_year: Time.now.year - 8, order: [:day, :month, :year]

このコードは、日、月、年の 3 つの入力フィールドを生成します。しかし、私が実際に望んでいるのは、3 つすべてに対して 1 つのフィールドを用意することです。そのため、入力は "05/05/1980" のようになります。それはどのように達成できますか?

4

6 に答える 6

6

:as param を間違って渡しました。文字列型を使用すると、3 つのフィールドではなく 1 つのフィールドが作成されます。

= f.input :dob, label: "Date of Birth", as: :string, start_year: Time.now.year - 90, end_year: Time.now.year - 8, order: [:day, :month, :year]
于 2013-11-09T13:41:32.003 に答える
1

最善の解決策は、jquery datepicker を使用することです。デフォルトの日付ピッカーはこの形式を返します。単純なフォーム入力は通常のテキスト フィールドである必要があります。きれいで簡単なソリューション

于 2013-11-07T11:58:24.013 に答える
0

jquery datepicker を次のように使用します。

= f.input :dob

$(function() {
  $("input#id_of_dob_field").datepicker();
});
于 2014-01-18T08:10:18.393 に答える
0

最良の解決策は、オプションの日付ピッカーを含むテキストです。

この Railscast を確認してくださいhttp://railscasts.com/episodes/213-calendars

于 2013-11-07T13:37:22.590 に答える
0

html5: true オプションを追加するのはどうですか?単一のフィールドを提供します。ちょっとかわいそうだけど。

= f.input :dob, label: "Date of Birth", as: :date, start_year: Time.now.year - 90, end_year: Time.now.year - 8, order: [:day, :month, :year], html5: true
于 2020-05-12T01:59:26.360 に答える