【问题标题】:Adding blank option to rails select tag向rails select标签添加空白选项
【发布时间】:2013-05-10 18:57:00
【问题描述】:

我使用 jquery 链接,如果第一个下拉列表选择了空白选项,我试图让第二个下拉列表变灰。我假设我需要第二个列表中的空白选项才能锁定,但我不确定如何添加空白选项。这是选择选项

<%= select_tag :equipment, options_for_select(Equipment.all.collect
                                            { |e| ["#{e.model} - #{e.serialNum}",e.id, 
                                            :class =>"#{e.handReceipt}"]},
                                            html_options = {:id=>'equipment'}) %>

第一个下拉列表让您选择手收据类型,并且使用 jquery 链接,第二个列表仅显示具有适当手收据属性的记录。

如何在上面的选择中添加一个空白选项?

编辑-这是我迄今为止尝试过的-

<%= select_tag :equipment, 
     options_for_select(  [["--",""],
                          Equipment.all.collect{ |e|
                          ["#{e.model} - #{e.serialNum}",
                          e.id, :class =>"#{e.handReceipt}"]}],
                          html_options = {:id=>'equipment'}) %>

这会导致列表显示不正确-

<select id="equipment" name="equipment">
   <option value="">--</option>
   <option value="[&quot;M4 - W432156&quot;, 10, {:class=&gt;&quot;Arms Room&quot;}]">[&quot;PSN-13 - 176985&quot;, 1, {:class=&gt;&quot;Commo&quot;}]</option>
</select>

而不是显示表中的所有记录,它只显示一个空白选项和第二个选项。

<%= select_tag :equipment, 
     options_for_select(  :include_blank => true,
                          Equipment.all.collect{ |e|
                          ["#{e.model} - #{e.serialNum}",
                          e.id, :class =>"#{e.handReceipt}"]},
                          html_options = {:id=>'equipment'}) %>

导致以下错误 -

C:/Users/Sam/Documents/ruby/btrp/app/views/vehicles/edit.html.erb:19: syntax error, unexpected ',', expecting tASSOC
                          e.id, :class =>"#{e.handReceipt}"]},

【问题讨论】:

  • 请注意,您的html_options 是错误的。你需要使用哈希格式,所以:html_options =&gt; { :id =&gt; 'equipment' }是正确的
  • 已记录并修复。它之前设置正确并且没有引发错误。谢谢你的收获。

标签: ruby-on-rails


【解决方案1】:

您在options_for_select 的参数是错误的,我认为这是正确的方法:

<%= select_tag :equipment,
      options_for_select(Equipment.all.collect { |e|
                           ["#{e.model} - #{e.serialNum}", e.id,
                            { :class =>"#{e.handReceipt}" }]}), 
      :include_blank => true,
      :id => 'equipment' %>

阅读更多:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

【讨论】:

  • 感谢您的提示。关于如何将空白选项放入选择中的任何想法?
  • 该死的。哈哈,我整个上午都在努力让这个工作。我认为include_blank 将在options_for_select 下。猜猜我必须花更多时间来破译帮助语法。我已经阅读并重新阅读了该页面一千次。感谢您的帮助!
  • 关于那个注释,根据页面,如果你用'string'替换true,它会在框中显示字符串。无论出于何种原因,页面都不会显示我传递给 :include_blank 的字符串。有什么想法吗?这是我输入的内容... :include_blank => '--'
  • 对此你需要使用:prompt =&gt; '--',忘记:include_blank look at docs
【解决方案2】:

您可以像这样附加空白值。

<%= select_tag "category","<option value=''>Category</option>" +  options_from_collection_for_select(@store_categories, "id", "name",params[:category].to_i)%>

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多