0

これは、これまでに寄せられた他の質問とよく似ています。HTML/Javascript でこれを行う方法は知っていますが、Formtastic に固有の質問です。

(これはほぼ同じ質問へのリンクです。ただし、Formtastic が次の例のような HTML を出力する方法を理解するだけでよい場合を除きます。「その他の」ラジオまたはチェックボックスがオンの場合、Div を表示/非表示にします) 。

多くの場合、ラジオ ボタンのリストがあります。

  • 選択肢 1
  • 選択肢 2
  • 選択肢 3

まあ、それはすべて問題なくダンディであり、Formtastic はそれを簡単に処理します. しかし、私がこれをしたいときはどうなりますか:

  • 選択肢 1
  • 選択肢 2
  • 選択肢 3
  • その他: [ここにテキスト入力]

[その他] をクリックするまで、テキスト入力はグレー表示になっているはずです。「その他」を選択した場合、ユーザーはそれが何であるかを入力する必要があります。(そして、同じ議論がチェックボックスにも適用されます。)

対話性は Javascript であり、それに関する限り Formtastic の仕事ではないことを認識しています。私が話しているのは、実際のマークアップです。

Formtastic にこれを発行させる方法はありますか?

4

1 に答える 1

0

Formtastic には、すぐに使用できるものはありません。これは主に、フォーム データを投稿するときにパラメーターがどのように見えるかについて確立されたパターンを認識していないためです。モデル側で慣習と適切なサポートがなければ、一部の人にとってはうまくいくかもしれないものを中途半端にしか作っていないように感じます.

幸いなことに、カスタム入力を使用して独自のソリューションを半分焼き上げることができます。:as => :selectdoの代わりに:as => :select_with_other、 で独自のビルドを開始しSelectWithOtherInputますapp/inputs/select_with_other_input.rb

class SelectWithOtherInput < Formtastic::Inputs::SelectInput end

SelectInput のソース コードとそれに含まれるモジュールを調べて、必要なものを取得するために何をオーバーライドする必要があるかを把握する必要がありますが、現時点ではこれが唯一の方法です。

このための適切なパターンを確立できる場合は、喜んでパッチを検討します。

于 2012-07-28T23:28:54.070 に答える