2

私はレールでルビーを学んでいます。私のプロジェクトでは、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動作します。onchange一緒に使いたいですselected。このコードの何が問題になっていますか?

4

1 に答える 1

5

「selected」はオプションですが、「onchange」は生成されたHTMLに割り当てるHTML属性です。これらの2つの異なるタイプのものは、異なる引数内でcollection_selectに渡されることになっています。

特に、「selected」は5番目(「options」)のハッシュでキーと値のペアとして渡され、「onchange」は6番目の(「html_options」)ハッシュの一部として渡される必要があります。

詳細については、 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_selectを参照してください。

于 2012-10-17T04:39:02.183 に答える