【问题标题】:Radio buttons generated with rails radio_button not changing when clicked使用 rails radio_button 生成的单选按钮在单击时不会更改
【发布时间】:2014-02-15 13:18:54
【问题描述】:

我在categories.html.erb中有以下代码:

<%= form_for(@marker) do |f| %>
  <div> <%= f.radio_button("category", "1") %><label>Category 1</label> </div>
  <div> <%= f.radio_button("category", "2") %><label>Category 2</label> </div>
  <div> <%= f.radio_button("category", "3") %><label>Category 3</label> </div>
<% end %>

以及categories.js中的以下javascript代码:

var update = function() {
  return console.log("Category Selected");
};

$("input[type='radio']").change(update);

单选按钮似乎从未改变(当我单击单选按钮时,我的控制台日志上没有显示任何内容)。

我最初想做的是在每个类别中都有一个subcategory div,它只会在选择相应的单选按钮时显示(并在单击另一个按钮时隐藏)。

更新:我使用以下代码得到了这个:

$(document).ready(function(){
    $("input[type=radio]").change(function(){
      $(".subcategory").hide();
      $("#" + $(this).val()).show();
    });
});

不知道为什么我必须将代码放在.ready 中,老实说。 :$

【问题讨论】:

  • 原因是您的更改事件处理程序是在加载 html 元素之前加载的。您也可以简单地在正文末尾添加脚本..
  • @Praveen 但是如果我想将 js 代码放在另一个文件中,我必须将其放入 .ready?
  • 没有问题。您可以简单地在 body 标签的末尾添加&lt;script src="file name" /&gt;

标签: javascript html ruby-on-rails onclick onchange


【解决方案1】:

我使用以下代码完成了这项工作:

$(document).ready(function(){
  $("input[type=radio]").change(function(){
    $(".subcategory").hide();
    $("#" + $(this).val()).show();
  });
});

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多