我想做一些非常簡單的事情:如果選擇了一個單選按鈕,則顯示一個 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 屬性中。
我怎樣才能在這里實作我的目標?
uj5u.com熱心網友回復:
這與 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');"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471115.html
標籤:javascript 轨道上的红宝石 哈姆
