我有一个带复选框的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和用户电子邮件之间存在匹配,则打印出该项目旁边的复选框。如果需要,我可以包含更多代码。我可以拨打Ajax电话吗?
答案 0 :(得分:2)
正如RedBassett所说,我并非100%确定我同意让复选框立即删除条目的策略。但是,如果您已经设置了该表单以删除内容,则可以这样执行:
您甚至不需要进行AJAX通话。只是常规的Jquery。在表单中添加一个类,以及复选框
Math.round(int)
并在您的JS文件中,使用Jquery告诉表单在用户单击复选框时提交。
<%= form_for @item do |f|, :class => "form-class" %>
<%= f.check_box :to_do, :class => "checkbox-class" %>
注意:这实际上会提交表单,就像您选中了复选框一样,然后按下“提交”表格。按钮,因此您需要在控制器中处理表单提交,如果您想要保持在同一页面上,则需要重定向回同一页面,因为此操作将导致重新加载/重定向
答案 1 :(得分:0)
是。你可以写一个AJAX调用。
protocol Fooable
{
init()
}
extension Int: Fooable {}
extension String: Fooable {}
func foo<T: Fooable>() -> T
{
return T()
}
let x: String = foo() // x is assigned the empty string
let y: Int = foo() // y is assigned 0
答案 2 :(得分:0)
使用 borbesaur 回答,但请记住,您只需在表单中添加remote: true
选项,以便Rails可以使用ajax提交表单,并避免重新加载所有页面。 :)