0

リンクされた 3 つのラジオ ボタンのブロックがあり、それぞれに個別の入力フィールドが接続されているフォームを作成したいと考えています。

  • オプション 1: [ __ドロップダウン ボックス__ ]
  • オプション 2: [ __ドロップダウン ボックス__ ]
  • オプション 3: [ __テキスト フィールド__ ]

3 つのオプションのそれぞれに、モデル内の属性があります。

3 つのオプションのそれぞれにラジオ ボタンが必要です。これを選択すると、その横の入力フィールドが自動的にアクティブになり、他の 2 つが無効になります。フォームが送信されたときのコントローラーでは、レコードを保存する前に、どのラジオ ボタンが選択されたかを把握し、関連する入力から値を取得し、他の 2 つのフィールドを nil に設定する必要もあります。

数か月前にこれを試してみましたが、惨めに失敗しました。もう一度やり直しても、まだあまり意味がありません。Web UI /マークアップ言語の経験が非常に浅いです。

組み合わせる必要があるさまざまな方法を読むことができるように、誰かが例または必要なリソースを教えてくれれば、それは大歓迎です.

4

2 に答える 2

0

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-radio_button

:class に値を渡して、ラジオ ボタンをグループ化します。各ラジオボタンに異なるIDを割り当て、JavaScriptで関連フィールドの非表示/表示を処理します。モデルでは、選択したラジオ ボタンから渡された値に応じて検証を使用します。

validates :mmc_value, :numericality => { :message => ERR_NUMBER }, :if => :modifier_type

def modifier_type
  ['MMC', 'LMC'].include?(self.modifier) #modifier is the value on which the validation of other fields is based.
end
于 2012-09-04T07:34:28.920 に答える
0

私はそれを機能させるためにこれをやった:

意見:

<label for="hide" style="display: inline-block">Override V</label>
<input id="v_toggle" type="checkbox" value="Hide" />
<br/>
<%= f.input :v_id, :collection => @vs, :prompt => "Choose a V" %>
<%= f.input :v, :label => false %>

JS ファイル:

jQuery(document).ready(function(){
    $('#service_v').hide();
    jQuery('#v_toggle').live('click', function(event) {        
        jQuery('#service_v_id').toggle('show');
        jQuery('#service_v').toggle('show');            
    });
});
于 2012-09-08T04:09:41.370 に答える