2016-11-21 69 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提交表單,並避免重新加載所有頁面。 :)