Рельсы JQuery каскадный выпадающий перезагрузка

У меня есть трехуровневый каскадный выпадающий список на странице рельсов, когда меняется страна, штат или провинция, затем город.

Я сделал эту функцию, добавив событие изменения в страну и выпадающий список соответственно. Тем не менее, у меня все еще есть проблемы:

Во-первых, когда перезагрузка выпадающих списков второго и третьего уровня исчезла, как их сохранить.

во-вторых, при редактировании, как загрузить сохраненное значение в прошлый раз?

Заранее спасибо.

1 ответ

Решение

Я знаю, что я немного опоздал, но у меня была та же проблема, и я нашел решение в Railscasts. Если вы использовали Railscast от Ryan Bates для Dynamic Select Boxes, который можно найти здесь:

http://railscasts.com/episodes/88-dynamic-select-menus-revised

Один из пользователей в комментариях опубликовал обновленный скрипт кофе, чтобы заставить его работать с формой редактирования:

jQuery ->
  loaded_product = $('#product_category_id :selected').text()
  categorys = $('#product_category_id').html()
  $('#product_category_id').parent().hide()
  if loaded_product.length != 0
   brand = $('#product_brand_id :selected').text()
   escaped_brand = brand.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
   options = $(categorys).filter("optgroup[label=#{escaped_brand}]").html()
   $('#product_category_id').html(options)
   $('#product_category_id').parent().show()
  console.log(categorys)
  $('#product_brand_id').change ->
    brand = $('#product_brand_id :selected').text()
    escaped_brand = brand.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
    options = $(categorys).filter("optgroup[label=#{escaped_brand}]").html()
    console.log(options)
    if options
      $('#product_category_id').html(options)
      $('#product_category_id').parent().show()
    else
      $('#product_category_id').empty()
      $('#product_category_id').parent().hide()

Может быть, вы все еще можете использовать его или кто-то еще считает это полезным.

Другие вопросы по тегам