【问题标题】:How do I set a select box value using Rails?如何使用 Rails 设置选择框值?
【发布时间】:2013-09-15 11:38:34
【问题描述】:

我的form_tag 中有以下选择框。

<select name="sel">
  <option selected=true value="+">+</option>
  <option value="-">-</option>
  <option value="*">*</option>
  <option value="/">/</option>
</select>

如何设置控制器中选择框的选项?另外,如何在提交表单后保留所选选项?

【问题讨论】:

    标签: ruby-on-rails ruby forms select


    【解决方案1】:
    <%= select_tag "sel", options_for_select([['+', '+'], ['-','-'], ['*','*'],['/','/']], params[:sel] || '*')
    

    【讨论】:

    • 是否可以第一次显示*,然后为提交保留选择的值。 ?选项的顺序不应该改变,只需要第一次显示*作为选择的选项。
    • 我尝试了更新的答案,它不起作用,而是显示-
    【解决方案2】:

    如果要选择并保留默认值,一种可能是:

    <%= select_tag "sel", "<option>+</option><option selected='selected'>-</option><option>*</option><option>/</option>".html_safe %>
    

    如果您想保留之前选择的值,则需要将其保存在某个位置并使其在您的控制器中可用,例如在 @previously_selected 变量中,然后:

    select_tag "whatever", options_for_select([ "+", "-", "*", "/" ], @previously_selected)
    

    【讨论】:

    • 为什么不使用options_for_select helper?
    • @Miotsu 一旦我提交,值就会改变。我希望选择框保留选定的值。
    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多