Управление массивом и некоторыми вложенными полями формы непротиворечивы?

Я использую кокон для обработки некоторых полей формы, но мне нужно использовать значения активных полей формы в другом месте страницы, особенно в массиве, который используется в другом месте; поэтому мне нужно заполнить поля формы массивом, а при изменении одного изменить другой.

Что я сейчас делаю, так это то, что всякий раз, когда массив модифицируется, я удаляю все поля формы, добавляю их снова, но потом не могу получить к ним доступ по индексу, а когда я изменяю массив, я не уверен, как отловить изменение и получить измененный фактический индекс, учитывая, как кокон обрабатывает вставку и удаление, индекс не соответствует тому, что показано.

Добавление кода для справки:

У меня есть эта функция для очистки форм, создания новых, но я не могу заполнить из массива field_coords, так как я не уверен, как на самом деле получить доступ к form_fields.

function redo_forms(){
  $('.remove_point').each(function() {
    $(this).trigger('click');
  });
  for(i=0; i < field_coords.length; i++){
    $('.add_point').trigger('click');
    //add data here
  };
}

И сами формы определяются как:

<tbody>
    <%= f.fields_for :points do |point| %>
        <%= render 'admin/shared/point_fields', {:f => point} %>
    <% end %>
    <tr id='new_point'>
        <td colspan="3">
            <%= link_to_add_association t(:add_points), f, :points, {'data-association-insertion-method' => 'before', 'data-association-insertion-node' => '#new_point', :partial => 'admin/shared/point_fields', :class => 'add_point'} %>
        </td>
    </tr>
</tbody>

а также:

<tr class='nested-fields'>
  <td><%= f.text_field :lat, :class => 'coordinate_lat span8' %></td>
  <td><%= f.text_field :lng, :class => 'coordinate_long span8' %></td>
  <td><%= link_to_remove_association t(:remove_point), f, :class => 'remove_point' %></td>
</tr>

1 ответ

Вы пытались использовать грязную функцию вместо.click?

Я чувствую, что щелчок отправит пустую запись, а если щелкнет, ваше событие не отправит ничего, тогда пользователь введет значение.

Кроме того, есть ли причина, по которой вы предпочитаете не настраивать контроллер для хранения информации, которую вы очищаете и повторно вводите?

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