2013-04-16 45 views
0

我有一個巨大的檢查列表,將有行的複選框。每一行都是一個事件。當複選框被選中時,它會被用戶的姓名首字母和當前日期所取代。我希望用戶能夠點擊具有用戶信息的TD,然後讓jquery彈出一個對話框,詢問您是否要取消選中該字段。jquery調用rails控制器

我的問題是我不知道如何在接受對話框後從控制器調用方法。我需要將傳遞給對話框的ID和類別發送到該方法。

Rails的查看代碼:

<td style='text-align:center;' class='completed_box' id='<%= check_list.id %>' category='videos_edited'> 
          <div id='videos_edited_<%= check_list.id %>' style='display:none;'> 
           Are you sure you would like to uncheck videos edited recieved? 
          </div> 
          <label> 
           <%= check_list.videos_edited_user_id.initials %> <br /> 
           <%= check_list.videos_edited_date.strftime("%-m/%d") %> 
          </label> 
         </td> 

jQuery代碼:

$(document).ready(function(){ 

    $(".completed_box").click(function(e){ 
     id = this.id 
     category = $(this).attr('category'); 
     $("#" + category + "_" + id).dialog({ 
      resizable: false, 
      height:140, 
      modal: true, 
      buttons: { 
      Yes: function(){ 
       uncheck(id,category); // This is the function I'm not sure how is going to work 
       $(this).dialog('close'); 
      }, 
      Cancel: function(){ 
       $(this).dialog('close'); 
       } 
      } 
     }); 
    }); 
}); 
+0

如果你想調用你的控制器中的rails方法,你將不得不做一個ajax調用。 http://api.jquery.com/jQuery.ajax/ – Huy

回答

0

使用坤寶石到 '取消選中' 鏈接傳遞給您的JavaScript,因此你的JavaScript知道在哪裏張貼訊息。

如果您發佈到JSON數據的「取消選中」操作,並且要取消選擇該記錄的ID,那麼您的控制器可以進行更改(或更好地調用model或lib對象進行更改),並且if成功只是像結尾:

head :ok 

如果不成功,你可能想使一個簡單的JSON哈希並顯示錯誤消息顯示,可能有像422不同的狀態碼 - 無法處理的實體。在您的jQuery Ajax中,包含一個錯誤事件處理程序,以便在錯誤消息失敗時顯示錯誤消息,或者重新檢查框或任何想要發生的錯誤消息。