ruby-on-rails – Rails Ajax Jquery Delete提交发布后的请求

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails Ajax Jquery Delete提交发布后的请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用Ajax删除我的Rails模型的一个实例.

它发生在点击一个按钮,我的代码如下所示:

$("#button").click(function(){ 
    $.ajax({
        type: "POST",url: "/slot_allocations/" + slotallocation_id,dataType: "json",data: {"_method":"delete"},complete: function(){
            $( "#SlotAllocationForm" ).dialog( "close" );
            alert("Deleted successfully");
        }
    });
});

我能够成功删除它,但是删除方法总是跟着一个发送请求到服务器来创建一个新的模型与现有的数据.这些是对服务器的请求.

1. POST http://localhost:3000/slot_allocations/1009 [HTTP/1.1 204 No Content  57ms]    
2. POST http://localhost:3000/slot_allocations [HTTP/1.1 302 Found  111ms]
3. GET http://localhost:3000/slot_allocations/1010 [HTTP/1.1 200 OK  185ms]

#1发生在点击我的按钮.但是,我不太确定为什么#2和#3发生.

视图中有两个按钮:

<button id="button">Delete</button>
<div class="actions"><%= f.submit %></div>

解决方法

假设您的按钮位于窗体内,单击它可能会提交该窗体,除了触发ajax请求.

您想要做的是防止单击提交表单的按钮的默认操作.

将function()参数更改为function(event),然后添加一个event.preventDefault()调用

$("#button").click(function(event){ 
    $.ajax({
        type: "POST",complete: function(){
            $( "#SlotAllocationForm" ).dialog( "close" );
            alert("Deleted successfully");
        }
    });
    event.preventDefault();
});

猜你在找的Ruby相关文章