2013-07-18 115 views
0

我在開發的CMS系統中有表單。在這個表格中我有這樣的代碼:除非選擇了下拉值,否則將複選框隱藏

<div class="styled_select"> 
    <%= f.select :cat_type, [["Eat & Drink", "eat"], 
    ["Hotels & Bed & Breakfast", "hotel"], 
    ["Attractions & Museums", "attraction"], 
    ["Shopping", "shopping"], ["Art & Design", "art"], 
    ["Health & Beauty", "health"], ["Fix & Repair", "fix"], 
    ["Medical & Safety", "medical"]], {:id => "cat_selector"} %> 
</div> 

<div class="hidden_option"> 
why</div> 

它構成了一個下拉菜單。我想要做的是當我選擇購物時,爲什麼出現這個詞。但我似乎無法使它工作。我看過一些例子,但我不知道我沒有做錯什麼。我明白我必須使用JavaScript,但我不知道在什麼地方放置它。正如你所理解的,我是Rails的新手,我可以使用這些幫助。

我使用的JavaScript代碼放置在places.js資產\ JavaScript的文件夾

function your_new_method(){ 
    $("#cat_selector").change(function(){ 
     if($("#cat_selector").val() == "Shopping"){ 
      $(".hidden_option").fadeIn('fast'); 
     } 
    }; 
} 

我也有上面的CSS

.hidden_option { 
display: none; 
} 

在的application.js文件我已經把裏面

$(document).ready(function(){ 
    your_new_method(); //Calls the method you created to set up the unobtrusive js 
}); 
+0

你需要的,如果你希望有人來幫你解決它 – Benj

+0

回答

0

您似乎錯過了在選擇框中定義的ID。

將javascript放在一個函數中並放入一個js文件中,並將其存儲在與您找到application.js文件相同的目錄中。類似於以下內容:

function your_new_method(){ 
    $("#cat_selector").change(function(){ 
     if($("#cat_selector").val() == "Shopping"){ 
      $(".hidden_option").fadeIn('fast'); 
     } 
    }; 
} 

在application.js中應該有一個像下面這樣的方法。如果它不存在,你可以添加它。

$(document).ready(function(){ 
    your_new_method(); //Calls the method you created to set up the unobtrusive js 
}); 
+0

謝謝你的回答。我在選擇框中添加了id。你能解釋一下你的意思嗎? –

+0

對不起,我應該在javascript上下文中使用單詞function。我已經修改了答案。希望它現在更清楚一點。 – robinjohnobrien

+0

我編輯我的問題上面到我到目前爲止的確切代碼。當我點擊購物時,我仍然無法制作爲何出現 –

相關問題