2012-11-26 2 views
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 %> 

내가 여기에 조건을 넣어합니다. 즉, 선택 태그에서 Agile 옵션을 선택한 다음 레이블 class = "agile"이 sales이면 class = "sales"라는 레이블 아래 다른 레이블 블록이 작동해야합니다.

저는 데이터베이스에 이러한 것을 저장하지 않습니다. 그래서 나는 내 선택에 따라 특정 블록을 선택하기를 원한다.

덕분에 많은

+0

당신이 클라이언트에서 자바 스크립트를 사용하여 시도해야한다 (이것은 아마도 어느 정도 최적화 할 수 있습니다) 이 작업을 수행 –

답변

1

당신이 할 몇 가지 자바 스크립트가 필요합니다. (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(); 
});