Rails形成帮手表现奇怪

时间:2012-06-12 11:37:52

标签: ruby-on-rails radio-button form-helpers

我想使用几个单选按钮来控制某些页面元素的模式。基本要求是向用户显示哪种模式处于活动状态,并在选择其他按钮时触发相应的模式切换功能。所以我尝试了以下内容。

<%= 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") %>

这似乎没有:onchange参数传递给第二个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>

为什么呢?我如何让它表现出来?

1 个答案:

答案 0 :(得分:4)

根据rails文档,这里是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。感谢

相关问题