在 HAML 中切换 div 的单选按钮
Radio buttons to toggle div in HAML
我想做一些非常简单的事情:如果选择了一个单选按钮,则显示一个 div,隐藏另一个 div,如果选择另一个单选按钮,则显示 div被选中,从而隐藏第一个 div.
这是我的,但不起作用:
row
.col-sm-6.form-group
= form.radio_button "meta_data[quantity_meta][type]", value: "range", onclick: "toggleDiv('.toggle-range', '.toggle-fixed');"
= form.label "meta_data[quantity_meta][type]", "range"
.row
.col-sm-6.form-group.fixed
= form.radio_button "meta_data[quantity_meta][type]", value: "fixed", onclick: "toggleDiv('.toggle-fixed', '.toggle-range');"
= form.label "meta_data[quantity_meta][type]", "fixed"
.div.toggle-range
= form.label "YO!", hidden: true
.div.toggle-fixed
= form.label "Can't stop the feeling!", hidden: true
以及 JavaScript(可通过资产管道访问):
function toggleDiv(hideDiv, showDiv) {
$(hideDiv).hide();
$(showDiv).show();
}
很简单。然而,当我呈现页面并检查我的“单选按钮”时,这就是我所看到的:
<input type="radio" value="{:value=>"range", :onclick=>"toggleDiv('.toggle-range', '.toggle-fixed')"}" name="meta_data[quantity_meta][type]">
它将我的 onclick 属性放入单选按钮的 value 属性中。
我怎样才能在这里实现我的目标?
这与 Haml 或您的 javascript 无关。 radio_button的签名是:
radio_button(method, tag_value, options = {})
由于您将散列作为第二个参数传递,因此它被强制转换为字符串。相反,您需要:
= form.radio_button "meta_data[quantity_meta][type]", "range", onclick: "toggleDiv('.toggle-range', '.toggle-fixed');"
我想做一些非常简单的事情:如果选择了一个单选按钮,则显示一个 div,隐藏另一个 div,如果选择另一个单选按钮,则显示 div被选中,从而隐藏第一个 div.
这是我的,但不起作用:
row
.col-sm-6.form-group
= form.radio_button "meta_data[quantity_meta][type]", value: "range", onclick: "toggleDiv('.toggle-range', '.toggle-fixed');"
= form.label "meta_data[quantity_meta][type]", "range"
.row
.col-sm-6.form-group.fixed
= form.radio_button "meta_data[quantity_meta][type]", value: "fixed", onclick: "toggleDiv('.toggle-fixed', '.toggle-range');"
= form.label "meta_data[quantity_meta][type]", "fixed"
.div.toggle-range
= form.label "YO!", hidden: true
.div.toggle-fixed
= form.label "Can't stop the feeling!", hidden: true
以及 JavaScript(可通过资产管道访问):
function toggleDiv(hideDiv, showDiv) {
$(hideDiv).hide();
$(showDiv).show();
}
很简单。然而,当我呈现页面并检查我的“单选按钮”时,这就是我所看到的:
<input type="radio" value="{:value=>"range", :onclick=>"toggleDiv('.toggle-range', '.toggle-fixed')"}" name="meta_data[quantity_meta][type]">
它将我的 onclick 属性放入单选按钮的 value 属性中。
我怎样才能在这里实现我的目标?
这与 Haml 或您的 javascript 无关。 radio_button的签名是:
radio_button(method, tag_value, options = {})
由于您将散列作为第二个参数传递,因此它被强制转换为字符串。相反,您需要:
= form.radio_button "meta_data[quantity_meta][type]", "range", onclick: "toggleDiv('.toggle-range', '.toggle-fixed');"