【发布时间】: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 标签的末尾添加
<script src="file name" />。
标签: javascript html ruby-on-rails onclick onchange