Перезагрузить календарь во вложенные формы (рельсы 3) - PullRequest
3 голосов
/ 20 октября 2011

У меня есть форма, которая содержит одну модель (назовем ее Model1), и эта модель принимает вложенные атрибуты от другой (назовем ее Model2).Я хочу иметь возможность сохранять много записей Model2, но я хочу, чтобы представление в начале показывало только один набор полей из Model2 и имело кнопку, которая, если щелкнуть, отображает другой набор полей из этой модели, искоро.Для этого я использую nested_form gem .

Все работает хорошо, но проблема в том, что одно из полей связано с указателем даты.Итак, первый набор полей Model2 показывает календарь, но когда я нажимаю, чтобы отобразить следующий набор полей, средство выбора даты, конечно, больше не отображается (потому что Javascript загружается только тогда, когда вы попадаете на страницу и больше никогда)

В следующем коде показана кнопка, которая добавляет больше концептов (Концепция - это Модель2)

<%= f.fields_for :concepts do |concept_form| %>
<%= render "courses/concept_fields", :f=>concept_form%>
<% end %>

<p><%= f.link_to_add t("concepts.add"), :concepts %></p>

А внутри полей курсов / concept_ concept:для выбора даты входит в макет

Есть ли какой-нибудь способ, которым вы можете мне помочь?Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 октября 2011

Я нашел ответ, который решил мою проблему.Это по этой ссылке:

JQuery UI DatePicker с nested_forms Gem

будет выглядеть так:

<script type="text/javascript">

jQuery(function() {
    jQuery('form').live('nested:fieldAdded', function(event) {
        jQuery(event.field).find('.date_picker').removeClass('hasDatepicker').datepicker();
    });
});

</script>
0 голосов
/ 24 октября 2011

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

$('.render_next_button').click(function(){
   // code to reload datepicker
   $( "#datepicker" ).datepicker();
});
...