<%= f.radio_button :newCustomer, "Male",:value=>'NewCustomer',:checked=>true%>
`<%= f.radio_button :customer, "Female",:value=>'Customer'%>`
<div id="first"></div>
<div id="second"></div>
我是rails的新手。我有两个radiobuttons和两个div。当我点击NewCustomer
我想要隐藏first
div时,当我点击Customer
时显示隐藏的div我想只在Ruby代码中执行此操作。是否有像.net
答案 0 :(得分:1)
您可以通过导轨中的Javascript
/ JQuery
/ Ajax
来实现它:
示例:
<强> HTML 强>
<input type="radio" name='thing' value='valuable' data-id="female" />
<input type="radio" name='thing' value='valuable' data-id="male" />
<hr />
<div id="female" class="none">Div for Male</div>
<div id="male" class="none">Div for Female</div>
<强> CSS:强>
.none {display:none;}
<强> JQuery的强>
$(':radio').change(function (event) {
var id = $(this).data('id');
$('#' + id).addClass('none').siblings().removeClass('none');
});
答案 1 :(得分:1)
<强>管道强>
要进一步Gagan
的答案,您需要在asset_pipeline
中添加您的Javascript:
#app/assets/javascripts/application.js
$(document).on("change", ".radio", function(){
// gagan's code here
});
-
<强> Turbolinks 强>
当您将Rails应用程序与Turbolinks一起使用时,需要注意的是javascript "delegation"的重要性。
由于Turbolinks只更新页面的<body>
标记,许多JS事件绑定实际上将变为无效,从而阻止您的应用程序正确加载。
要解决此问题,您需要能够从&#34;容器&#34;中委派您的DOM事件。元素(通常为document
),或者将代码封装在Turbolinks events中,如下所示:
#app/assets/javascripts/application.js
var change = function() {
$(".radio").on("change", function(){
//Stuff here
});
};
$(document).on("page:load ready", change);