link_to 有个 method 属性,经常用来配合 :confirm 属性做删除链接的确认。
<%= link_to ' Delete', { :action => 'destroy'}, :confirm => "Delete this?", :method => :delete %>
其实就是在链接的 onclick 中创建了一个临时表单,提交请求,最后 return false,这样链接本身就不会被触发。
<a href="/uiok/3" onclick="if (confirm('确认吗')) {...};return false;">删除</a>
不过发现,在IE7下生成的链接,如果点击否的话,return false 并没有效果,不仅onclick中的表单提交,链接也触发了 。
那么为什么原来没有发现这个问题呢 ? 因为 Rails 生成的控制器代码中都会有这么一句:
verify :method => :post, :only => [ :destroy, :create, :update ],:redirect_to => { :action => :list }
问题就在于 IE 忽略了 return false 。
==================================
解决方法:
修改生成这个脚本的原始类,具体的路径根据你自己安装rails 的路径而定,找到url_helper.rb,增加红色标注部分:
module ActionView
module Helpers
module UrlHelper
private
def convert_options_to_javascript!(html_options, url = '')
...
when confirm && popup
"... ;event.returnValue = false; return false;"
when confirm && method
"... ;event.returnValue = false; return false;"
...
when method
"... return false;event.returnValue = false"
when popup
... + return false;event.returnValue = false''
...
end
end
end
原文:
http://galeki.is-programmer.com/2008/5/5/return-false-does-not-work-in-IE.2794.html
分享到:
相关推荐
= link_to “Issues”, {:controller => “issue”, :action => “index”}, {:onclick => “alert(1)”} %> 但是值得注意的就是,link_to 的第二个参数,必须是以 map 的形式给出,才能达到这样的效果。...
一个简单的gem,可以使用标准的Rails link_to helper在链接上实现活动状态。 这对导航列表或按钮有帮助,当当前URL匹配链接帮助器上的条件时,为他们提供一个类。 安装 将此行添加到您的应用程序的Gemfile中: gem...
Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf
为什么Rails支架生成的链接不是干的,当有人尝试使它们成为I18n友好的(默认情况下不是)时,它甚至变得更糟。 如果您安装了twitter-bootstrap,并且希望使您的链接看起来像一个按钮,那么将有另一个附加功能,即“ ...
InspiniaAdmin 2.6.1 Rails_Full_Version
agile_web_development_with_rails_3rd_edition.9994652073.pdf
rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...
inspinia admin 2.5 中的 Rails_Full_Version
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
Ruby on Rails Guides_ A Guide to Active Record Associations.pdf
复杂Rails系统架构优化
active_link_to 使用一组选项创建的URL创建给定名称的链接标签。... 对于较旧的Rails应用,请在config / environment.rb中添加config.gem 'active_link_to'并运行rake gems:install 。 或者只是将此
中文世界唯一一本Rails 4.0.0 + Ruby 2.0.0 的自學書籍
介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...
RestFul_Rails_Dev_v_0.1 RestFul_Rails_Dev_v_0.1
rails_best_practices ...默认情况下,rails_best_practices将解析vendor , spec , test和features目录中的代码。 排除目录 要排除目录,只需使用-e或--exclude调用: rails_best_practices -e "db/migrate
ruby_on_rails_3_入门教程(中文)
Rails_Recipes_with_Source_Code
Api-rails5_api_tutorial.zip,了解如何在michael hartl的rails 5教程上构建一个现代api立即在rails应用程序中构建一个api!(Rails 5版本),一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web...
weixin_rails_middleware, 微信集成 ruby weixin_rails_middleware for integration weixin.