2013-07-23 2 views
0

Форма ЗАПРОСА имеет много КАТЕГОРИЙ, а КАТЕГОРИЯ имеет много ПРОДУКТОВ. Выберите категорию, чтобы заполнить список выбора продукта. Вот JQuery:Rails App - jQuery Динамический выбор Игнорирование пробелов?

jQuery -> 
    $('#request_product_id').parent().hide() 
    products = $('#request_product_id').html() 
    console.log(products) 
    $('#request_category_id').change -> 
     category = $('#request_category_id :selected').text() 
     options = $(products).filter("optgroup[label=#{category}]").html() 
     console.log(options) 
     if options 
      $('#request_product_id').html(options) 
      $('#request_product_id').parent().show() 
     else 
      $('#request_product_id').empty() 
      $('#request_product_id').parent().hide() 

Вот форма парциальное:

<div class="field"> 
    <%= f.label :category_id, "Select a Category:" %> 
    <%= f.collection_select(:category_id, Category.sorted, :id, :name, :include_blank => true) %> 
    </div> 

    <!-- BASED ON CATEGORY SELECTED ABOVE, LOAD CORRESPONDING PRODUCTS BELOW --> 

    <div class="field"> 
    <%= f.label :product_id, "Select a Product/Service:" %> 
    <%= f.grouped_collection_select :product_id, Category.sorted, :products, :name, :id, :name, include_blank: true %> 
    </div> 

Это прекрасно работает, если Категория Название не имеет места в нем, но если это произойдет, список товаров не загружается. Например: category.name = «Программное обеспечение» или «Персонал» - очень просто загружает все программное обеспечение или персональные продукты. Но если category.name = «Разработка приложений» или «Отчет о бизнес-объектах», ничего не загружается.

Почему? Заранее спасибо!

ответ

0

Пожалуйста, попробуйте options = $(products).filter("optgroup[label='#{category}']").html() в вашем jQuery.

+0

Hah - спасибо! Я тоже получил его. (Я буду одобрять ваш ответ, когда это позволит мне!) –

+0

@ KatieM, :) очень приятно только в несколько секунд! – vee

+0

Эй, теперь, когда у меня есть вы - можете ли вы помочь с загрузкой статического текстового поля, которое отображает product.description при выборе Продукта? –

0

я понял это - я добавил одинарные кавычки #category:

options = $(products).filter("optgroup[label='#{category}']").html() 

Спасибо, что мне говорить это! :)