方法:=>:删除不工作,并且:忽略确认选项
返回到旧的Rails项目后,我发现没有任何销毁/删除链接起作用,并且单击取消确认弹出窗口仍然会提交链接。我的代码方法:=>:删除不工作,并且:忽略确认选项
例子是:
<%= link_to 'Delete', admin_user_path(@user), :confirm => 'Are you sure?', :method => :delete %>
这个问题,如果没有,然后寻找类似的东西:
在我的情况,我用的是:
javascript_include_tag:所有%>
而且它不工作,但是当我把它想:
javascript_include_tag:默认%>
它的工作!
jquery,对...忘了那个。 – 2011-01-28 22:31:11
克里斯,你好。我有同样的问题。我删除了Firebug,问题依然存在。我从另一个用户那里读到他需要重新启动Firefox,但这也不起作用。有人说尝试Safari,那也没用。
最后,这是一个新手的事情:
我有助手插入一个图标,像edit_icon,它会返回一个良好的形象标签的编辑图标等
其中的一个辅助方法是delete_icon方法,我这样写:
def delete_icon(object = nil) link_to image_tag('icons/delete.jpg',:width => 20,:border => 0),object,:确认=>'你确定吗?',:方法=>:删除 结束
这是DRY的一个(良好的)尝试,但是如果我只有def delete_icon(object),而不是object = nil,那么它会更好,因为它使得它更加清晰,当我调用它时必须将它传递给对象摧毁。调用与要删除的对象相同的方法为我工作。
简而言之:如果您尝试干燥,请仔细检查您的帮助器方法。如果你正在使用jQuery发生
在我的情况下,它似乎是一个原型和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和最新的原型https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js下载了最新的rails.js。
现在一切似乎按预期工作。
下面是使用jQuery提供所有删除按钮进行同样的确认方式:
;(function($){
$(function(){
$('input.destroy').click(function(){
return confirm($(this).attr('data-confirm'));
});
});
})(jQuery);
你一定要一定要添加类=“消灭”每个元素,如:
= button_to 'Delete', polygon, :method => :delete, :class => "destroy", :confirm => "Are you sure?"
大多数情况下,这是因为您在加载之前或在页面中的元素存在之前调用jQuery代码。
为了解决这个问题类似:
$(document).ready(function() {
$('*[data-confirm]').click(function(){
return confirm($(this).attr('data-confirm'));
});
});
这里是快速的解决方案 - 只需更换与数据确认符合
<%= link_to 'Delete', admin_user_path(@user), 'data-confirm' => 'Are you sure?', :method => :delete %>
尝试
之前使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<%= javascript_include_tag "application" %>
在你的布局,并且还删除您的application.js
//= require jquery
线。
这是我的情况。不知道为什么它不适用于原始轨道jquery.js文件。
我在使用jQuery的Rails 3应用程序中遇到了同样的问题。你有没有找到解决方案? – Callmeed 2011-02-11 19:10:31