0

私はこのようなフォームを持っています:

<%= form_tag project_configure_select_path , :method => :put do %>
Select The Type Of Project<%= select_tag "type", "<option>Agile</option><option>Sales</option>".html_safe %>
<br/>
<label class="agile"> 
    <%= check_box_tag 'modules_enabled[]', "time_tracking", false, :id => "project_enabled_module_names_time_tracking", :checked => "checked", :type => "hidden" %>
    <%= check_box_tag 'modules_enabled[]', "issue_tracking", false, :id => "project_enabled_module_names_issue_tracking", :checked => "checked", :type => "hidden" %>
    <%= check_box_tag 'modules_enabled[]', "wiki", false, :id => "project_enabled_module_names_wiki", :checked => "checked", :type => "hidden" %>
    <br/>
</label>
<label class="sales"> <%= check_box_tag 'modules_enabled[]', "news", false, :id => "project_enabled_module_names_news", :checked => "checked", :type => "hidden" %> </label>
<br/>
<%= submit_tag 'Submit'%>
<% end %> 

ここに条件を入れたい。つまり、selectタグからオプションAgileを選択した場合、ラベルclass = "agile"が機能する必要があります。それ以外の場合、salesの場合は、その下にあるclass="sales"というラベルの他のブロックが機能する必要があります。

私はこれらのどれもデータベースに保存していません。したがって、オプションに応じて特定のブロックを選択する必要があります。

どうもありがとう

4

1 に答える 1

1

これを行うには、JavaScriptが必要になります。(標準で提供されているため、jQueryを使用します)。

<option value="agile">Agile</option>オプション要素(例)と次のようなJSにいくつかの値を追加します。

(これはおそらくある程度最適化できます)

// By default, both should be hidden
$('label.agile, label.sales').hide(); 

$('select#type').change(function() {
    $('label.agile, label.sales').hide(); 

    // Show the label with the class that matches the selected option
    $('label.'+$(this).val()).show(); 
});
于 2012-11-26T08:07:29.077 に答える