2017-01-31 3 views
1

У меня есть много динамически созданных форм (form_for) с элементами check_box. Мне нужно создать on-click submit. Когда я нажимаю на флажок, он отправляет первую форму на странице, а не текущую форму кликов. Как я могу отправить текущую форму кликов?Отправить форму динамики

<%= form_for todo, url: update_todos_path, remote: true, html: { id: 'todo_status'} do |t| %> 
       <%= t.text_field :id %> 
       <%= t.check_box :isCompleted, {}, 'false', 'true' %> 
       <div class='checkbox_text'> 
        <%= todo.text %> 
       </div> 

Этот код JQuery Я использую для статических форм:

$('.checkbox_text').click(function (event) { 
$('#todo_status').submit(); 
}); 

Кроме того, как я могу положить Param мой :id без t.text_field?

+0

Вы пробовали '$ (codument) .он ('нажмите' 'checkbox_text', функция (событие)' –

+0

@Carsten Løvbo Андерсен не работает :( –

+0

Вы получаете любой 'console' ошибки? hit F12 –

ответ

0

Если checkox находится внутри формы, без элемента между тогда вам просто нужно проверить для родителя флажка:

$('.checkbox_text').click(function (event) { 
    $(this).parent().submit(); // $(this).parent() would return the form itself 
}); 

Когда вы помещаете идентификатор к элементу, это означает, что он является уникальным , У вас не может быть много элементов в dom с тем же идентификатором, что и надежда выбрать все из них.

+0

Спасибо. Это отлично работает. Возможно, вы также знаете об этом: 'Также, как я могу поместить параметр my: id без t.text_field'? –

0

Вы можете попробовать $ (селектор) .closest(), чтобы получить форму из текста.

$(document).on('click','.checkbox_text',function (event){ 
    $(this).closest('#formId').submit() // You can use class name also like('.formClass') 
}) 
Смежные вопросы