加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 22:00:26 所属栏目:百科 来源:网络整理
导读:我试图用Ajax删除我的Rails模型的一个实例. 它发生在点击一个按钮,我的代码如下所示: $("#button").click(function(){ $.ajax({ type: "POST",url: "/slot_allocations/" + slotallocation_id,dataType: "json",data: {"_method":"delete"},complete: funct
我试图用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();
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读