問題:ページの最初のフォームのみを送信します。
完了したらチェックボックスをクリックしてチェックできるToDoがあります。
私の部分にはフォームがあります。ToDoの数だけレンダリングされますが、IDは異なります。フォームにはチェックボックスがあります。クリックすると、フォームが送信されます。
部分的
<%= form_for todo, :remote => true, :html => {:id => "edit_done_todo_#{todo.id}"} do |f| %>
<%= f.hidden_field(:done_by_user_id,:value => current_user.id) %>
<%= f.check_box :completed, :class => "done_box", :id => todo.id %>
<% end %>
これがJavaScriptです
jQuery.fn.mark_todo_done = function (){
var id = $(this).attr("id")
console.log(id)
$("#edit_done_todo_" + id).submit()
};
$(document).ready(function() {
$(".done_box").live("click", function() {
$(this).mark_todo_done();
})
})
console.logには正しいIDが表示されます。ただし、ページの最初のフォームが送信されます。