Управление массивом и некоторыми вложенными полями формы непротиворечивы?
Я использую кокон для обработки некоторых полей формы, но мне нужно использовать значения активных полей формы в другом месте страницы, особенно в массиве, который используется в другом месте; поэтому мне нужно заполнить поля формы массивом, а при изменении одного изменить другой.
Что я сейчас делаю, так это то, что всякий раз, когда массив модифицируется, я удаляю все поля формы, добавляю их снова, но потом не могу получить к ним доступ по индексу, а когда я изменяю массив, я не уверен, как отловить изменение и получить измененный фактический индекс, учитывая, как кокон обрабатывает вставку и удаление, индекс не соответствует тому, что показано.
Добавление кода для справки:
У меня есть эта функция для очистки форм, создания новых, но я не могу заполнить из массива 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?
Я чувствую, что щелчок отправит пустую запись, а если щелкнет, ваше событие не отправит ничего, тогда пользователь введет значение.
Кроме того, есть ли причина, по которой вы предпочитаете не настраивать контроллер для хранения информации, которую вы очищаете и повторно вводите?