1

Есть ли у кого-нибудь идеи/ресурсы для того, как создать форму в Rails, которая может использовать либо функции начальной загрузки «Collapse», либо Jqueries «Accordion»?Rails свернуть вложенную форму

В принципе, у меня есть огромная форма со множеством вложенных атрибутов, и я хотел бы свернуть их, чтобы пользователь мог открыть раздел, который он или она хочет изменить. Я должен верить, что здесь есть ЧТО-ТО, но все, что я видел, - это неотвеченные вопросы от людей, пытающихся интегрировать бутстрап или jquery с помощью formtastic или form_for.

В принципе, я искал что-то, что может интегрироваться с рельсами и выглядит примерно так: http://www.alpacajs.org/examples/forms/customer-profile/edit-form.html

UPDATE:

К сожалению, я просто понял, что мой оригинальный пост может быть немного расплывчатым. Я пытаюсь использовать DSL Formtastic (или rails form_for) и интегрировать его с функциональностью коллапса. Я просто не видел нигде в Интернете, где люди добились успеха в их объединении.

ответ

0

Я использую bootstrap sass gem. В Gemfile

group :assets do 
    # ... 
    gem 'bootstrap-sass' 
    # ... 
end 

Вы должны добавить к application.js.coffee следующей строке

#= require bootstrap-collapse 

В представлении, содержащих вашу форму (например _form.html.erb, вы просто должны инкапсулировать тег формы, которые вы хотите, чтобы разрушиться следующее:

<div class="collapse"> 
    <%= label_tag(:q, "Search for:") %> 
    <%= text_field_tag(:q) %> 
</div> 
+0

hello @toch, я не мог заставить его работать над моей формой :(- У вас есть примеры, с которыми вам удалось работать? – BKSpurgeon

+0

@BKSpurgeon это было в 2013 году, но я думаю, что текущее решение должно быть таким же более или меньше. С какими версиями вы работаете? – toch

+0

Я использую рельсы 4 - это было так долго, что я забыл, что я опубликовал оригинальный комментарий. возможно, не беспокойтесь об этом, если кто-то еще не отправит комментарий? – BKSpurgeon

1

Если вы хотите сохранить его простым и иметь больше контроля над тем, что вы включаете в вашем приложении вы можете easil y достиг эффекта, который вам нужен, с несколькими строками javascript.

Я поставил пример здесь: http://jsfiddle.net/iKindred/pYgLY/2/

И вот JS:

jQuery(document).ready(function($){ 
    $('.collapsable-section').each(function(i){ 
     var $label = $(this).find('.label').filter(':first'); 
     var $fields = $(this).find('.fields').filter(':first'); 
     $label.click(function(e){ 
      $fields.slideToggle(200); 
     }); 
    }); 
}); 

Вы можете адаптировать его к вашим потребностям или дайте мне знать, если вам нужна помощь :)

+0

сэр, я заметил, когда я нажимаю кнопку «Назад» в браузере, трюк обрушения не работает - возможно, из-за некоторого кэширования. Знаете ли вы, как я могу это исправить? – BKSpurgeon

+0

Для этого вам необходимо сохранить состояние формы всякий раз, когда есть смена (с использованием локального хранилища или что-то еще), и вызвать это состояние, когда форма загружается снова. –

+0

спасибо - я искал и нашел это, что другие могут найти полезным: http://stackoverflow.com/questions/3432614/using-jquery-to-store-the-state-of-a-complicated-form – BKSpurgeon

Смежные вопросы