rails select_tag selected value

后端 未结 4 1690
孤街浪徒
孤街浪徒 2020-12-23 19:24

For the code given below I wanted to keep the select box selected with the value that is passed.

But this doesn’t work:

@yrs =[2011,2010,2009,2008]
&         


        
相关标签:
4条回答
  • 2020-12-23 19:25

    I was using a select box as part of a Search bar, so wanted to have the default first option selected on first presentation of the form, but then retain the chosen option thereafter. This works great:

    <% styles = Styles.all.sort %>
    <%= form_tag styles_path, :method => 'get' do %>
        <p>
            Search: style
            <%= select_tag :search_style, options_for_select(styles, selected: params[:search_style]) %>
             with colour
            <%= text_field_tag :search_color, params[:search_color] %>
            <%= submit_tag "Search" %>
        </p>
    <% end %>
    
    0 讨论(0)
  • 2020-12-23 19:31
    <%= select_tag "page_type", options_for_select(@page_type.collect{ |u| [u.data_name, u.id]}, :selected=>@page.page_type), {:class =>"select_combobox",:onchange=>"reset_form(this.id,'page_type_msg');"} %>
    

    this works for me :)

    0 讨论(0)
  • 2020-12-23 19:34

    Remove the :selected=> part.

    Syntax:

    options_for_select(@options, @selected_options)
    

    Usage:

    options_for_select(1..5, 3)  # creates a range 1..5 , with 3 as selected by default
    
    0 讨论(0)
  • 2020-12-23 19:44

    Just to clarify @M Tariq Aziz answer:

    Your code should look like this:

    @yrs =[2011,2010,2009,2008]
    <%= select_tag 'year', options_for_select([["Select" , "" ]] + @yrs.to_a,2011) %>
    

    The general format for select tag is:

    <%= select_tag 'year', options_for_select(:collection, :selected) %>
    
    0 讨论(0)
提交回复
热议问题