Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Rails复选框创建提交操作_Html_Ruby On Rails_Ajax - Fatal编程技术网

Html Rails复选框创建提交操作

Html Rails复选框创建提交操作,html,ruby-on-rails,ajax,Html,Ruby On Rails,Ajax,我有一个带有复选框的rails表单。我试图做的是,当用户单击复选框时,应用程序会从数据库中删除该条目。我无法理解的是,当用户选中复选框时,应用程序如何反应(类似于单击提交按钮)。我应该在我的html中包含什么,这样当用户单击复选框时,应用程序就会执行某些操作 这是我的密码 <% @items.each do |item|%> <%if item.email == @user.email%> <%= form_for @item do |f|

我有一个带有复选框的rails表单。我试图做的是,当用户单击复选框时,应用程序会从数据库中删除该条目。我无法理解的是,当用户选中复选框时,应用程序如何反应(类似于单击提交按钮)。我应该在我的html中包含什么,这样当用户单击复选框时,应用程序就会执行某些操作

这是我的密码

<% @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和user email之间存在匹配项,则打印出旁边带有复选框的项目。如果需要,我可以包含更多代码。我可以打Ajax电话吗?

可以。您可以编写一个AJAX调用

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

$('#复选框_id')。更改(函数(){
$.get('controller/action?item_id='+$(this).val(),函数(数据,状态){
/*回电*/
})
})

是。您可以编写一个AJAX调用

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

$('#复选框_id')。更改(函数(){
$.get('controller/action?item_id='+$(this).val(),函数(数据,状态){
/*回电*/
})
})

正如RedBassett所说,我不能100%确定我是否同意让复选框立即删除条目的策略。但是,如果您拥有的表单已设置为删除内容,您可以这样做:

您甚至不需要AJAX调用。只是普通的Jquery。将类添加到窗体以及复选框中

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

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

注意:这将实际提交表单,就像您选中该框,然后按下“提交”按钮一样,因此您需要在控制器中处理表单提交,如果您想停留在同一页面上,则需要重定向回同一页面,因为此操作将导致重新加载/重定向,正如RedBassett所说,我不能100%确定我是否同意让复选框立即删除条目的策略。但是,如果您拥有的表单已设置为删除内容,您可以这样做:

您甚至不需要AJAX调用。只是普通的Jquery。将类添加到窗体以及复选框中

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

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

注意:这将实际提交表单,就像您选中该框,然后按下“提交”按钮一样,因此如果您想保持在同一页面上,您需要在控制器中处理表单提交,您将需要重定向回同一页面,因为此操作将导致重新加载/重定向

使用borbesaur答案,但请记住,您可以将
remote:true
选项添加到表单中,以便Rails可以使用ajax提交表单,避免再次重新加载所有页面。:)

使用borbesaur回答,但请记住,您可以在表单中添加
remote:true
选项,这样Rails就可以使用ajax提交表单,避免再次重新加载所有页面。:)

撇开技术实现不谈,我对删除复选框操作内容的想法有些保留。使用复选框和提交按钮进行删除是很常见的,因为它提供了一个确认步骤(通常后跟另一个确认按钮)。您是否希望用户能够使用复选框意外删除内容,这通常意味着能够在不进行任何破坏性操作的情况下打开和关闭内容?除了技术实现之外,我对删除复选框操作内容的想法有所保留。使用复选框和提交按钮进行删除是很常见的,因为它提供了一个确认步骤(通常后跟另一个确认按钮)。您是否希望用户能够使用复选框意外删除内容,该复选框通常可以推断在不进行任何破坏性操作的情况下打开和关闭内容?