0

我有一个巨大的检查清单,里面会有一排排的复选框。每行是一个事件。当复选框被“选中”时,它会替换为用户的姓名首字母和当前日期。我希望用户能够单击包含用户信息的 TD,然后让 jquery 弹出一个对话框,询问您是否要取消选中此字段。

我的问题是我不知道在接受对话框后如何从控制器调用方法。我需要将传递给对话框的 ID 和类别也发送给方法。

导轨查看代码:

<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');
                }
            }
        });
    });
});
4

1 回答 1

0

使用 gon gem 将“取消选中”url 传递给您的 javascript,以便您的 javascript 知道在哪里发布消息。

如果您使用 JSON 数据发布到“取消选中”操作,并取消选择记录的 id,那么您的控制器可以进行更改(或者更好的是,调用模型或 lib 对象进行更改),如果成功则以就像是:

head :ok

如果不成功,您可能希望呈现一个简单的 JSON 散列并显示错误消息,并可能带有不同的状态代码,例如 422 - Unprocessable entity。在您的 jQuery Ajax 中,包含一个错误事件处理程序以在失败时显示错误消息,或者重新选中该框,或者您想要发生的任何事情。

于 2013-04-16T22:36:24.783 回答