0
我有一个Rails嵌套形式包含动态选择菜单中的子领域的工作: --category(过滤菜单) - 产品动态选择菜单不加场
我可以得到一个字段集工作,但我已经破解了产品菜单(通过使用DOM备份的主要形式的“备份”collection_select),因为我无法使用.html()在动态字段上加载选择数据。我使用修订的Railscast#88作为模板代码。
真正的问题是只有第一个选择菜单组合工作 - 当我在其他字段集中选择类别菜单时,所有菜单都会失败。我尝试添加(this)方法,但可以使其工作。
任何见解非常感谢!
培训相关js.coffee:
products = $('.products-backup').html()
$('form').on 'change', '.category', (event) ->
category = $('.category :selected').text()
escaped_category = category.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(products).filter("optgroup[label='#{escaped_category}']").html()
if options
$('.products').html(options)
else
$('.products').empty()
培训相关的轨道html.erb部分 - 注意,我分配:类名给每个选择菜单:
<fieldset>
<div class="field">
<%= f.collection_select :category_id, Category.all, :id, :name, { prompt: 'Select' },
{ :class => "category" } %>
</div>
<div class="field">
<%= f.grouped_collection_select :product_id, Category.order(:name), :products,
:name, :id, :name, { prompt: 'Select' }, { :class => "products" } %>
</div>
#...more fields
</fieldset>
代码很好用......我需要对与轨道模型相关的无线菜单格式做一些小改动。仍然存在的一个问题是以相同形式的多组无线电/选择。所以,当我改变一个类别时,它会改变所有的产品,因为它们的类名相同 - 关于如何将每个电台与其相应的产品选择相关联的想法? – Jeff
@Jeff,基于每一组相关元素都包含在一个字段集中,然后尝试编辑上面的代码的最后一行 - 以及相应的更新小提琴。 –
完美的解决方案!感谢您的帮助,这为我节省了时间/天! – Jeff