2012-03-04 39 views
0

你好,我想讓2下拉列表。首先我想顯示所有類別,當用戶選擇他想要的類別時,會自動顯示所選類別的所有子類別並保存子類別標識。我怎麼能做到這一點?如何使用ruby on rails 2.0上的jQuery製作選定的下拉列表?

類別與子類別的關係是,我以整數格式存儲子類別中的類別ID。

這裏是我的代碼,直到現在我所做的。林不那麼熟悉的jQuery

<script type="text/javascript"> 
$(document).ready(function() { 
// hides the slickbox as soon as the DOM is ready 
    $('#subcategory_value_id').hide(); 
     $('div#category_value').change(function() { 
        var category_id = ""; 

      $("select option:selected").each(function() { 
      category_id += $(this).text(); 
       }); 
     $("div#test").text(category_id); 
     $('#subcategory_value_id').toggle(); 
     }) 
     }); 
    </script> 

<div id="category_value">Country: 
<%= f.collection_select :id, Category.find(:all), :id, :name, :prompt => "Select a Category" %></div> 
</p> 
<p> 
    <div id="subcategory_value_id">State or Province: 
    <%= f.collection_select :id, Subcategory.find(:all), :id, :name, :prompt => "Select a Subcategory" %></div> 
</p> 
<div id="test"></div> 

謝謝

+0

」以整數格式存儲子類別中的類別ID「...不夠豐富的HTML將幫助 – charlietfl 2012-03-04 23:40:16

回答

0

我已經與國家做到了這一點,並在this project狀態。

這裏的簡化圖:

<%= address.collection_select :country_id, Country.all, :id, :name, { :selected => address.object.country_id.to_s } %> 
<%= address.collection_select :state_id, address.country.states, :id, :name, { :selected => address.object.state_id.to_s } %> 

Here是JavaScript代碼:

  • 一個Ajax請求來填充JSON結構的國家和狀態。
  • 將change事件添加到選擇的國家,這會更新狀態選擇。

請注意,在我的代碼中,邏輯適用於帳單和送貨地址,因此您的代碼將在此處簡化。同樣在我的代碼中,文本是允許的狀態字段,這不會在你的情況下需要。您不必在AJAX調用中填充JSON數組 - 可能包含在初始頁面加載中。你想看的內容是onchange事件功能。 「

相關問題