2012-07-18 27 views
2

在我看來的的onchange調用JavaScript函數,我有以下幾點:期間選擇框

<%= 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」作爲一個附加參數,並把它裏面的一個:選擇或: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 %> 

回答

6
<%= select("event", :event_id, events_ids_titles_hash, { :include_blank => true, :onchange => "alert_me_test()" }) %> 

爲我工作,但我必須說,你正在打擊當前與此一。 Rails遵循UJS,這意味着你的處理程序應該與HTML分開。在這種情況下,選擇將是相同負的onclick然後腳本會

<script type="text/javascript"> 
    $('select').change(alert_me_test); 

    function alert_me_test(){ 
    ... 
    } 
</script> 

你不必這樣做事,但它使更清晰的尋找一個腳本,您的活動呼叫時來自。

+0

我會測試這個 – EastsideDeveloper 2012-07-18 15:24:05

+0

它爲我工作。編輯也起作用:<%= select(「panel」,::event_id,events_ids_titles_hash,{:selected => @ panel.event_id},{:include_blank => true,:onchange =>「alert_me_test()」})% >有一個問題:警報被調用兩次。有任何想法嗎? – EastsideDeveloper 2012-07-18 15:54:56

+0

我假設你在腳本中使用了事件處理。在這種情況下,您可以從:html哈希中刪除:onchange =>「alert_me_test()」。否則,他們都會被觸發。 – AdamCooper86 2012-07-18 16:35:19

2

我相信你需要設置:onchange作爲HtmlOption,這是第四個參數:

<%= select("event", :event_id, events_ids_titles_hash, { :include_blank => true}, {:onchange => "alert_me_test()" }) %> 
+0

工作。我仍然沒有想出編輯部分的語法。請參閱上面編輯的問題。 – EastsideDeveloper 2012-07-18 15:10:29

相關問題