方法:=> :删除不工作并且:忽略确认选项

时间:2008-12-10 06:13:52

标签: javascript ruby-on-rails

在返回旧的Rails项目后,我发现没有任何破坏/删除链接工作,并且在确认弹出窗口中单击取消仍然会提交链接。

我的代码示例是:

<%= link_to 'Delete', admin_user_path(@user), :confirm => 'Are you sure?', :method => :delete %>

7 个答案:

答案 0 :(得分:3)

如果您使用的是jQuery,则会出现此问题,如果没有,请查找类似的内容:

就我而言,我正在使用:

javascript_include_tag:所有%&gt;

它不起作用,但当我这样说时:

javascript_include_tag:默认%&gt;

有效!

答案 1 :(得分:0)

克里斯,你好。我有同样的问题。我删除了Firebug并且问题仍然存在。我从另一个用户那里读到他需要重新启动Firefox,但也没有用。有人说试试Safari,也没用。

最后这是一个新手:

我有帮助者插入一个图标,比如edit_icon,它会为编辑图标返回一个漂亮的图像标记等。

其中一个辅助方法是delete_icon方法,我这样编写:

def delete_icon(object = nil)     link_to image_tag('icons / delete.jpg',:width =&gt; 20,:border =&gt; 0),object,:confirm =&gt; “你确定吗?”,:method =&gt; :删除   端

这是DRY的一个(好)尝试,但是如果我只有def delete_icon(对象),而不是object = nil,那就更好了,因为当我调用它时它会让我更清楚我必须传递它反对毁灭的对象。使用要删除的对象调用相同的方法对我有效。

简而言之:如果你想干,请仔细检查你的辅助方法。

答案 2 :(得分:0)

在我的情况下,似乎是原型和rails.js的旧组合的问题。这个问题的答案促成了我::confirm option in Rails being ignored while using Rails 3 and jQuery UJS

所以我从https://github.com/rails/prototype-ujs/raw/master/src/rails.js下载了最新的rails.js,从https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js下载了最新的原型。

现在一切似乎都按预期工作了。

答案 3 :(得分:0)

这是一种使用jQuery为所有删除按钮提供相同确认的方法:

;(function($){
  $(function(){
    $('input.destroy').click(function(){
      return confirm($(this).attr('data-confirm'));
    });
  });
})(jQuery);

您必须确保为每个元素添加class =“destroy”,例如:

= button_to 'Delete', polygon, :method => :delete, :class => "destroy", :confirm => "Are you sure?"

答案 4 :(得分:0)

大多数情况下,这是因为您在加载jQuery代码之前或者在页面中的元素存在之前调用jQuery代码。

要解决这个问题,请使用以下内容:

$(document).ready(function () {
  $('*[data-confirm]').click(function(){
    return confirm($(this).attr('data-confirm'));
  });
});

答案 5 :(得分:0)

以下是快速解决方案 - 只需替换符合数据确认

<%= link_to 'Delete', admin_user_path(@user), 'data-confirm' => 'Are you sure?', :method => :delete %>

答案 6 :(得分:0)

尝试使用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> 

之前

<%= javascript_include_tag "application" %> 
在您的布局中

,并删除

//= require jquery

application.js 中排成一行。

对我来说就是这种情况。不知道为什么它不适用于原始rails jquery.js文件。