rails根据选择显示optgroup

时间:2016-02-02 20:45:33

标签: javascript jquery ruby-on-rails forms

所以我正在尝试做类似于Railscast Dynamic Select Menus#88的视频。我有一个类别模型,其中包含主菜和主菜。所以我有3个模型而不是2.我试图使用所选主菜的类别然后过滤两侧。与Railscast相比的另一个不同之处是我有很多不仅仅是一种形式。

此代码在我第一次选择某些内容时起作用,但如果我之后将其选择更改为其他任何内容,则边是空的。如果我需要添加任何其他代码/信息,请提前感谢您的帮助,并告诉我们。

编辑:这是一个链接,可以看到动作https://jsfiddle.net/ky0pkavd/

这是我的表格:

<%@restaurants.each do |restaurant| %>
    <h3><%=restaurant.name%></h3>
    <%= form_for [@customer,@meal] do |f| %>
       <%= f.grouped_collection_select(:food_item, restaurant.categories, :entrees, :name, :id, :name) %>
       <%= f.grouped_collection_select(:side, restaurant.categories, :sides, :name, :id, :side_item) %>
       <%= f.submit "Submit meal", class: "btn btn-primary", data: { confirm: 'Are you sure you want to submit this meal?' } %>
    <%end%>
<%end%>

这是我的jQuery:

$(".new_meal #meal_food_item").on('change', function() {
var restaurant = $(this).parent().parent().eq(0)
        var sides = $(restaurant).find("#meal_side").html()
        var category = $(restaurant).find("#meal_food_item :selected").parent().attr('label')
        var options = $(sides).filter("optgroup[label="+category+"]").html()
         if (typeof options !== 'undefined') {
           $(restaurant).find("#meal_side").html(options)
         }
         else {
           $(restaurant).find("#meal_side").empty()
         }
      });

0 个答案:

没有答案