2012-06-12 97 views
0

我想用幾個單選按鈕來控制一些頁面元素的模式。基本要求是,它向用戶顯示哪種模式處於活動狀態,並在選擇了不同的按鈕時觸發相應的模式切換功能。所以我嘗試了以下。Rails窗體助手行爲奇怪

<%= radio_button_tag(:label_type, "tooltip", :checked, :onchange => 'console.log("tooltip")')%> 
<%= label_tag(:label_type_tooltip, "Enable Tooltip") %><br /> 
<%= radio_button_tag(:label_type, "labels", :onchange => 'console.log("labels")') %> 
<%= label_tag(:label_type_labels, "Enable Labels") %> 

這似乎沒有工作:傳遞給第二radio_button_tag平變化的參數,但它(如上所示)是具有onchange事件未附接至第二個單選按鈕,而是設置的混淆效應第二個單選按鈕檢查(我不想要)像這樣:

<input checked="checked" id="label_type_tooltip" name="label_type" onchange="console.log(&quot;tooltip&quot;)" type="radio" value="tooltip"> 
<label for="label_type_tooltip">Enable Tooltip</label><br> 
<input checked="checked" id="label_type_labels" name="label_type" type="radio" value="labels"> 
<label for="label_type_labels">Enable Labels</label> 

爲什麼?我如何使其行爲?

回答

4

按照這裏的鐵軌文檔是radio_button_tag

radio_button_tag(name, value, checked = false, options = {}) 

的論點似乎你忘了通過「檢查」的價值。請嘗試以下

<%= radio_button_tag(:label_type, "labels", false, :onchange => 'console.log("labels")') %> 

不過,我會建議你在你的JS或咖啡文件添加綁定,而不是因爲這種做法不被認爲是一個很好的做法。有關更多信息,請參閱jquery api。謝謝