Javascript 触发ruby代码上的点击式Jquery

Javascript 触发ruby代码上的点击式Jquery,javascript,jquery,html,ruby-on-rails,ruby,Javascript,Jquery,Html,Ruby On Rails,Ruby,因此,我试图在单击f.复选框时触发我的f.submit。我不知道您是否可以使用jquery来处理ruby。。。但基本上这是一个包含页面上所有项目的待办事项列表视图。当我点击复选框标记它时,我希望它自动提交 我想我可以在f.复选框和f.提交上分配一个div标签来触发它们。。。这是我使用JQuery的第一部分 <h1><%= @list.title %></h1> <script src="//code.jquery.com/jquery-1.10

因此,我试图在单击
f.复选框时触发我的
f.submit
。我不知道您是否可以使用jquery来处理ruby。。。但基本上这是一个包含页面上所有项目的待办事项列表视图。当我点击复选框标记它时,我希望它自动提交

我想我可以在
f.复选框
f.提交
上分配一个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
     -->

jQuery(文档).ready(函数(){
jQuery(“#目标”)。单击(函数(){
jQuery(“#处理程序”)。单击();
});
});

嗯,试试以下方法:

$("input[type=checked]").on("click", function() {
  if( $(this).is(':checked') ) { $('form').submit() }
}
你可能想

<%= f.check_box :complete, html: { class: "check_complete"} %>



然后将
输入[type=checked]
替换为
。检查是否完成
,或者使用
(“#处理程序”)。单击()
而不是
.submit()

div
不会触发
onclick
事件您需要设置
onchange
复选框的方法,该复选框将提交表单

这里有一个代码。 您需要为每个提交按钮设置不同的
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>

“提交表格(“+@list.items[index].id.to_s+”)”}%>
@列表.项目[索引].id%>
功能提交表格(id){
$('#'+id)。单击();
}

hmm。。。。两个建议都试过了,还是一无所获。我不得不让f.submit保持原样,添加
id:handler
时抛出了一个语法错误。因此,我仍然将其标记为
@argentum47@BartDangus为什么它会抛出语法错误!!显示代码!!它应该像,像这里和你使用的rails 4或更高版本?
<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>