2014-02-15 24 views
0

我在categories.html.erb下面的代碼:單選按鈕被點擊時radio_button不改變

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

和下面的JavaScript代碼categories.js

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不過,說實話。 :$

+1

的原因是裝載HTML元素之前,你的改變的事件處理程序被加載。你可以簡單地在腳本的最後添加腳本.. – Praveen

+0

@Praveen但是如果我想在另一個文件中使用js代碼,我必須把它放在'.ready'中? – sebkkom

+2

沒有問題。您可以簡單地在body標籤的末尾添加'