因此,当我点击f.submit
时,我试图让我的f.check_box
被触发。我不知道你是否可以使用jquery来处理ruby ......但基本上这是一个包含页面上所有项目的待办事项列表的视图。当我单击复选框将其标记为关闭时,我希望它自动提交。
我以为我可以在f.check_box
和f.submit
上分配一个div标签来触发它们......这是我使用过的第一个JQuery。
<h1><%= @list.title %></h1>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<div>
<h2><% @list.items.each do |item| %></h2>
<%= item.content %>
<%= form_for([@list, item]) do |f| %>
<div id="target">
<%= f.check_box :complete %>
</div>
<div id="handler">
<%= f.submit %>
<% end %>
</div>
<% end %>
</div>
<script>
jQuery(document).ready(function() {
jQuery("#target").click(function() {
jQuery("#handler").click();
});
});
</script>
<% if policy(@list).update? %>
<%= link_to "Edit List", edit_list_path, class: 'btn btn-success' %>
<% end %>
<div class="col-md-4">
<% if policy(Item.new).create? %>
<%= link_to "New Item", new_list_item_path(@list), class: 'btn btn-success' %>
<% end %>
<% if policy(@list).destroy? %>
<%= link_to "Delete List", @list, method: :delete, class: 'btn btn-danger', data: { confirm: 'Are you sure you want to destroy this lovely list?'} %>
<% end %>
</div>
</div>
<%= render "items/form" %>
<!--
new_list_item_path
/lists/5/items/new
-->
答案 0 :(得分:0)
$("input[type=checked]").on("click", function() {
if( $(this).is(':checked') ) { $('form').submit() }
}
你可能想要
<%= f.check_box :complete, html: { class: "check_complete"} %>
和
<%= f.submit, ".." id: "handler"%>
然后将input[type=checked]
替换为.check_complete
,并使用("#handler").click();
代替.submit()
答案 1 :(得分:0)
div
不会触发onclick
事件,您需要设置onchange
提交表单的checkbox
方法。
这是一个代码。
您需要为每个提交按钮设置不同的id
,然后您可以使用Jquery提交该表单。
我设置了复选框的onchange
方法,该方法根据项目ID提交表单。
<h1><%= @list.title %></h1>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<div>
<%index=0%>
<h2><% @list.items.each do |item| %></h2>
<%= item.content %>
<%= form_for([@list, item]) do |f| %>
<%=f.check_box :complete,{:onchange=> "submit_form("+@list.items[index].id.to_s+");"}%>
<%= f.submit :id=>@list.items[index].id%>
<%index+=1%>
<% end %>
<% end %>
</div>
<% if policy(@list).update? %>
<%= link_to "Edit List", edit_list_path, class: 'btn btn-success' %>
<% end %>
<div class="col-md-4">
<% if policy(Item.new).create? %>
<%= link_to "New Item", new_list_item_path(@list), class: 'btn btn-success' %>
<% end %>
<% if policy(@list).destroy? %>
<%= link_to "Delete List", @list, method: :delete, class: 'btn btn-danger', data: { confirm: 'Are you sure you want to destroy this lovely list?'} %>
<% end %>
</div>
</div>
<%= render "items/form" %>
<script>
function submit_form(id) {
$('#'+id).click();
}
</script>