jquery - Rails 使用 Jquery AJAX 销毁确认

标签 jquery ruby-on-rails

我已经完成了大部分工作。我的 Rails 链接是:

<%= link_to(image_tag('/images/bin.png', :alt => 'Remove'), @business, :class => 'delete', :confirm => 'Are you sure?', :id => 'trash') %>

:class => "delete" 正在调用 ajax 函数,以便将其删除并且页面不会刷新,效果很好。但由于页面没有刷新,所以它仍然存在。所以我的 id 垃圾正在调用这个 jquery 函数:

$('[id^=trash]').click(function(){
            var row = $(this).closest("tr").get(0);
            $(row).hide();
            return false;
});

这隐藏了我点击的垃圾图标行。这也很有效。我以为我已经解决了所有问题,然后我遇到了这个问题。当您单击我的垃圾桶时,我会弹出此确认框,询问您是否确定。无论您选择取消还是接受,jquery 都会触发并隐藏该行。它不会被删除,只是隐藏直到您刷新页面。我尝试更改它,以便通过 jquery 完成提示,但无论我在提示中选择什么,rails 都会删除该行,因为调用提示时正在调用 .destroy 函数。

我的问题实际上是如何从 Rails 确认弹出窗口中获取取消或接受的值,以便在我的 jquery 中我可以有一个 if 语句,如果单击“接受”则隐藏,如果单击“取消”则不执行任何操作。

编辑:回答下面的问题。 那没有用。我尝试将链接更改为:

<%= link_to(image_tag('/images/bin.png', :alt => 'Remove'), @business, :class => "delete",  :onclick => "trash") %>

并将其放入我的 jquery

function trash(){
if(confirm("Are you sure?")){
    var row = $(this).closest("tr").get(0);
    $(row).hide();
    return false;
} else {
//they clicked no.
}
}

但是该函数从未被调用。它只是在没有提示的情况下删除它,并且不会隐藏它。 但这给了我一个想法。

我获取了ajax调用的删除函数

     $('a.delete').click (function(){
            $.post(this.href, {_method:'delete'}, null, "script");
            $(row).hide();
});

并修改它来实现您的代码:

删除:confirm => '您确定吗?'

$('a.delete').click (function(){
        if(confirm("Are you sure?")){
            var row = $(this).closest("tr").get(0);
            $.post(this.href, {_method:'delete'}, null, "script");
            $(row).hide();
            return false;
        } else {
            //they clicked no.
            return false;
        }

});

这可以解决问题。

最佳答案

删除 :confirm => '你确定吗?'

$('a.delete').click (function(){
            if(confirm("Are you sure?")){
                var row = $(this).closest("tr").get(0);
                $.post(this.href, {_method:'delete'}, null, "script");
                $(row).hide();
                return false;
            } else {
                //they clicked no.
                return false;
            }

    });

关于jquery - Rails 使用 Jquery AJAX 销毁确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1234432/

相关文章:

javascript - Ember onClick 事件未完成操作

javascript - 防止 :hover on touch in iOS

javascript - 更新定价的结帐控制面板?

ruby-on-rails - ActiveRecord 创建(不是!)在验证时抛出异常

mysql - OSX 10.11 El Capitan 上的 Rails : Library not loaded: libmysqlclient. 18.dylib

ruby-on-rails - Ruby on Rails : link_to javascript

javascript - 使用 JQuery 从 JSON 文件搜索/自动完成(只需要获取以给定字母开头的结果)

ruby-on-rails - Rails Ajax 错误 : "Turbolinks is not defined"

ruby-on-rails - Ruby 将字符串 1/1/2014 转换为日期

JQuery 事件在附加后未触发