如何在rails上选择标记ruby中使用Option

时间:2012-11-26 07:19:37

标签: javascript ruby-on-rails ruby

我有一个这样的表格:

<%= 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”必须工作。

我没有在数据库中存储任何这些内容。所以我希望根据我的选择选择特定的块。

非常感谢

1 个答案:

答案 0 :(得分: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(); 
});