0

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

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

为什么?我该如何让它表现?

4

1 回答 1

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。谢谢

于 2012-06-12T11:43:51.583 回答