`
taito
  • 浏览: 96439 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IE7下, Rails link_to 生成的Confirm失效问题

阅读更多

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

 

 

分享到:
评论

相关推荐

    Rails link_to 详解

    = link_to “Issues”, {:controller =&gt; “issue”, :action =&gt; “index”}, {:onclick =&gt; “alert&#40;1&#41;”} %&gt; 但是值得注意的就是,link_to 的第二个参数,必须是以 map 的形式给出,才能达到这样的效果。...

    link_to_active_state:一个简单的gem,使用标准的Rails link_to helper在链接上实现活动状态

    一个简单的gem,可以使用标准的Rails link_to helper在链接上实现活动状态。 这对导航列表或按钮有帮助,当当前URL匹配链接帮助器上的条件时,为他们提供一个类。 安装 将此行添加到您的应用程序的Gemfile中: gem...

    Rails101_by_rails4.0

    随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助开发者掌握在Rails 4.0环境下开发应用所需的关键技能。 书中介绍了Ruby on Rails安装的最佳实践,以及如何通过Git、编辑器和Linux命令行等前置技能的学习...

    link_to_action:link_to用于特定操作

    为什么Rails支架生成的链接不是干的,当有人尝试使它们成为I18n友好的(默认情况下不是)时,它甚至变得更糟。 如果您安装了twitter-bootstrap,并且希望使您的链接看起来像一个按钮,那么将有另一个附加功能,即“ ...

    Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf

    Rails框架设计之初就充分考虑了测试的需求,它在后台自动生成骨架测试代码,当你创建模型和控制器时,测试代码便已就绪。通过运行这些测试,你可以确保代码即使在大规模重构后仍保持预期的功能性。此外,Rails测试...

    inspinia admin - v2.5 Rails_Full_Version

    4. **Scaffolding**:Rails提供的一种快速生成CRUD(创建、读取、更新、删除)操作的工具,可以快速搭建基本的后台功能。 5. **Gemfile与Bundler**:管理Rails应用依赖的工具,通过Gemfile指定项目所需的库和版本,...

    rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器.zip

    rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板.zip

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...

    Ruby on Rails Guides_ A Guide to Active Record Associations.pdf

    Ruby on Rails Guides_ A Guide to Active Record Associations.pdf

    RestFul_Rails_Dev_pdf_v_0.1.zip

    例如,`form_for`辅助方法可以轻松创建用于创建和更新资源的表单,而`link_to`则用于生成链接,确保HTTP方法正确。 此外,Rails的ActiveRecord模型提供了强大的关联(Associations)功能,如has_many、belongs_to等...

    InspiniaAdmin 2.6.1 Rails_Full_Version

    7. **文档齐全**:InspiniaAdmin提供了详细的文档和示例代码,有助于开发者快速上手和解决遇到的问题。 在Rails_Full_Version压缩包中,包含了完整的源代码和必要的资源文件,开发者可以通过解压并导入到Rails项目...

    agile_web_development_with_rails_3rd_edition.9994652073.pdf

    《敏捷Web开发与Rails》第三版是一本深入探讨Ruby on Rails框架在敏捷软件开发方法论下的应用指南。本书由多位知名作者共同编写,包括Sam Ruby、Dave Thomas、David Heinemeier Hansson等,他们都是在Ruby社区内享有...

    active_link_to:Rails视图助手来管理链接的“活动”状态

    active_link_to 使用一组选项创建的URL创建给定名称的链接标签。... 对于较旧的Rails应用,请在config / environment.rb中添加config.gem 'active_link_to'并运行rake gems:install 。 或者只是将此

    rails_admin_acts_as_list:rails_admin插件以对记录进行排序

    介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    **Ruby-GoOnRails:利用Rails生成器构建Golang应用** Ruby on Rails(简称Rails)是一种流行的Web开发框架,以其“约定优于配置”的理念和高效的开发速度受到开发者喜爱。而Go(Golang)则是一种静态类型、编译型的...

    rails open_flash_chart

    "Rails Open Flash Chart" 是一个基于Ruby on Rails框架的库,用于在Web应用程序中生成交互式的Flash图表。这个库允许开发者轻松地创建各种统计图表,如折线图、柱状图、饼图等,以便更好地可视化数据。由于Flash在...

    rails_best_practices:Rails项目的代码度量工具

    rails_best_practices ...默认情况下,rails_best_practices将解析vendor , spec , test和features目录中的代码。 排除目录 要排除目录,只需使用-e或--exclude调用: rails_best_practices -e "db/migrate

    weixin_rails_middleware, 微信集成 ruby weixin_rails_middleware for integration weixin..zip

    `weixin_rails_middleware` 是一个开源的 Ruby 框架中间件,设计用于帮助开发者轻松地在 Rails 应用程序中集成微信服务。这个中间件提供了与微信API交互的功能,包括验证微信服务器的请求、处理用户消息、以及发送...

    Api-rails5_api_tutorial.zip

    Api-rails5_api_tutorial.zip,了解如何在michael hartl的rails 5教程上构建一个现代api立即在rails应用程序中构建一个api!(Rails 5版本),一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web...

    inspinia admin - v2.5 Rails_Seed_Project

    本文将详细探讨其在Rails框架下的种子项目(Rails_Seed_Project),旨在帮助开发者更好地理解和运用这一强大的工具。 首先,我们来了解一下“Inspinia Admin”。这是一款基于Bootstrap 3构建的响应式后台模板,提供...

Global site tag (gtag.js) - Google Analytics