collection_select onchange事件和选定的ruby on rails

时间:2012-10-17 04:06:51

标签: ruby-on-rails ruby

我正在铁轨上学习红宝石。在我的项目中 我使用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。这段代码有什么问题?

1 个答案:

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