2016-11-21 46 views
0

我有一个带复选框的导轨形式。我想要做的是当用户点击复选框时,应用程序将从数据库中删除该条目。我无法弄清楚的是,当用户检查复选框时,如何让应用程序反应(类似于单击提交按钮的操作)。我应该在我的html中包含什么,所以当用户点击复选框时,应用程序会执行某些操作?Rails复选框创建提交动作

这里是我的代码

<% @items.each do |item|%> 
    <%if item.email == @user.email%> 
     <%= form_for @item do |f| %> 
      <%= f.check_box :to_do %> 
      <%= f.label item.to_do %><br /> 
     <% end %> 
    <%end%> 
<%end%> 

我循环通过项目,如果在item.email和用户电子邮件之间的匹配与复选框打印出来的项目旁边。如果需要,我可以包含更多的代码。有我可以做的Ajax电话吗?

+0

抛开技术实现,我对删除复选框操作上的内容有一些保留。使用复选框和提交按钮来删除是很常见的,因为它提供了一个确认步骤(通常后面跟着另一个确认按钮)。您是否希望用户能够使用复选框意外删除内容,这通常会推断无需进行任何破坏性操作即可开启和关闭的功能? – RedBassett

回答

0

是的。你可以写一个AJAX调用。

<script> 
    $('#checkbox_id').change(function(){ 
     $.get('controller/action?item_id='+$(this).val(), function(data, status){ 
      /* Call back */ 
     }) 
    }) 
</script> 
2

正如RedBassett说,我不是100%肯定我有具有复选框立即删除条目的策略一致。但是,如果您的表单已经设置为删除东西,则可以这样做:

您甚至不需要AJAX调用。只是经常jquery。一类添加到形式,以及在复选框

<%= form_for @item do |f|, :class => "form-class" %> 

<%= f.check_box :to_do, :class => "checkbox-class" %> 

,并在你的JS文件,使用jQuery告诉表单当用户点击复选框提交。

$(".checkbox-class").on("click", function(){ 
    $(".form-class").submit(); 
}); 

注:这实际上将提交表单,这将是,如果你检查框,然后按下“提交”按钮,这样你将需要处理表单提交的控制器,如果你想留在同一页上,您将需要重定向回到同一页因为这种行动将导致重装/重定向

0

使用borbesaur答案,但要记住,你可以只添加remote: true选项,您的表格,以便滑轨可以使用ajax提交表单,并避免重新加载所有页面。 :)