2

我正在学习 ruby​​ on rails。在我的项目中,我使用 collection_select。我的代码是

<%= collection_select(:sport_name,count,Sport.find( :all, :order => 'id' ), :id, :sport_name, {} ,
    {:selected      => ps.sport.id,
     :include_blank => "Select Sport",
     :onchange      => "hidvalue("+ps.sport.id.to_s+","+count.to_s+")",
     :style         => "margin:1px 0 0;width:210px;" }) %>

onchange有效 -selected无效

如果我改为

<%= collection_select(:sport_name,count,Sport.find( :all, :order => 'id' ),:id, :sport_name,
    {:selected      => ps.sport.id,
     :include_blank => "Select Sport",
     :onchange      => "hidvalue("+ps.sport.id.to_s+","+count.to_s+")" },
    {:style         => "margin:1px 0 0;width:210px;" }) %>  

onchange不工作,但selected工作。我想onchangeselected一起使用。这段代码有什么问题?

4

1 回答 1

5

好吧,“selected”是一个选项,但“onchange”是您要分配给生成的 HTML 的 HTML 属性。这两种不同类型的东西应该在不同的参数中传递给 collection_select。

特别是,“selected”应该作为第五个(“options”)散列中的键/值对传入,而“onchange”应该作为第六个(“html_options”)散列的一部分传入。

有关更多信息,请参阅http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

于 2012-10-17T04:39:02.183 回答