2013-08-11 3 views
2

У меня есть трехуровневое каскадное выпадающее меню на странице рельсов, когда изменения в стране, изменения состояния или провинции, а затем изменения в городе.rails jquery cascading dropdown reloading

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

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

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

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

ответ

0

Я знаю, что поздно поздно, но у меня была такая же проблема, и я нашел решение в Railscasts. Если вы использовали Railscast Райан Бейтс для динамических полей выбора, которые можно найти здесь:

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() 

Возможно, вы все еще можете использовать его, или кто-то другой считает это полезным.

+0

извините за последнее время. Я только что вернулся из своего обновления. выглядит хорошо. благодаря –