0
问题:它只提交页面上的第一个表单。使用jquery和rails在check_boxes的一个页面上提交多个表单
我有一个待办事项,可以在完成后点击复选框进行检查。
在我的部分我有一个表单。它的渲染次数与待办事项相同,但带有不同的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。但是,页面上的第一个表单被提交。
你能不能显示呈现的HTML标记。我的猜测是缺少''标签,这会导致浏览器因为无效而删除的嵌套表单。 –
原因是每个请求只能提交一个表单。你应该做一个AJAX提交,发送单独的表单,或者你可以考虑将所有事情合并成一个非AJAX决策的表单。 –