私の見解では、私は次のことを持っています:
<%= select("event", :event_id, events_ids_titles_hash, { :include_blank => true, :onchange => "alert_me_test()" }) %>
alert_me_test() は:
<script type="text/javascript">
function alert_me_test()
{
alert ("this is a test")
}
</script>
ドロップダウンは正常に表示されますが、そこから選択しても何も起こりません。「これはテストです」という警告ボックスが表示されることを期待しています。
編集ケース:
編集を行っているとき、次のコードがあります。
<% if @panel.event_id %>
<%= select("panel", :event_id, events_ids_titles_hash, {:selected => @panel.event_id}, { :include_blank => true}) %>
私の IDE (RubyMine) は "onchange" を追加の引数として受け入れたくないので、それを :selected または :include_blank 引数ハッシュのいずれかに入れてもエラーは発生しませんが、どちらも機能しません。
新規と編集の両方で機能するようになったのは次のとおりです。
<% if @panel.event_id %>
<%= 'Event is ' + events_ids_titles_hash.key(@panel.event_id) %>
<%= select("panel", :event_id, events_ids_titles_hash, {:selected => @panel.event_id}, { :include_blank => true, :onchange => "alert_me_test()"}) %>
<% else %>
<%= 'Select Event from list' %>
<%= select("event", :event_id, events_ids_titles_hash, { :include_blank => true }, { :onchange => "alert_me_test()" }) %>
<% end %>