我有一个填充产品选择的类别选择:
<%= f.collection_select(:category_id, Category.active.sorted, :id, :name, :include_blank => true ) %>
根据选择的类别,具有该 category_id 的产品被加载到下一个选择中:
<%= f.grouped_collection_select :product_id, Category.active.sorted, :products, :name, :id, :name, include_blank: true %>
两个问题:
如何仅显示具有活动范围的产品?IE:
Product.active
同样,在类别选择列表中,如何仅显示附加了有效产品的类别?即:如果所选类别没有产品或未激活的产品,则该类别不会显示在第一个下拉列表中。
JS代码:
$('#request_product_id').parent().hide()
products = $('#request_product_id').html()
emptyOption = $('<option />').attr('value', '');
$('#request_category_id').change ->
category = $('#request_category_id :selected').text()
options = $(products).filter("optgroup[label='#{category}']").prepend(emptyOption).html()
if options
$('#request_product_id').html(options)
$('#request_product_id').parent().show()
else
$('#request_product_id').empty()
$('#request_product_id').parent().hide()