使用ROR中的单选按钮隐藏/显示div

时间:2014-09-12 05:38:34

标签: ruby-on-rails ruby-on-rails-4

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

中的任何radiobutton点击事件

2 个答案:

答案 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');
});

Working Fiddle

答案 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);