【问题标题】:Disable link_to tag in Rails3+在 Rails3+ 中禁用 link_to 标签
【发布时间】:2011-10-19 00:16:06
【问题描述】:

我使用了以下代码:

<%= link_to image_tag("edit.png", :alt => "Edit"), edit_user_path(user) %>

我想禁用此链接和图像,所以我在代码中添加了:disabled=&gt;true,但它并没有禁用。为什么不呢?如何禁用它们?

【问题讨论】:

  • 既然问题和答案都被否决了,那么我认为这是错误的方法。任何有更多经验的人都可以提出为什么所有内容都被否决了吗?
  • 不能说为什么投反对票,但可能是因为它们不是简单的答案。 Disabled 不会禁用超链接 -- w3.org/TR/DOM-Level-2-HTML/html.html#ID-87355129 所以你需要一个条件链接或 JavaScript 来禁用

标签: ruby-on-rails


【解决方案1】:

在回答您的问题时,Rails 中的 link_to 助手没有 :disabled 选项,它也不是元素的有效属性。我相信人们在 Rails 中容易对此感到困惑的原因是,如果您使用 Bootstrap,“:disabled => true”确实可以工作。因此,要解决此问题,您可以遵循 Gupta 的方法,或者只是添加 Bootstrap(它也会为您提供一些默认 CSS,因此人们在点击链接时不会感到沮丧)!

Re:rails 中的 link_to 方法:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to)

Re:元素上的“禁用”属性:Is 'disabled' a valid attribute for an anchor tag

Re: Bootstrap“禁用”类或属性与引导程序:http://getbootstrap.com/css/#anchor-element-1

【讨论】:

  • @lamrin,这回答了你的问题吗?您正在使用 Ruby on Rails,并且只是希望能够在此代码中添加“:disabled => true”,对吗?如果您还有什么需要帮助的,请告诉我!
  • 锚标签上有效属性的引用真的很有帮助!
  • 很高兴@SergioA 有帮助。!这是 Bootstrap 4 的更新参考:getbootstrap.com/docs/4.5/components/buttons/#disabled-state
【解决方案2】:

我不确定@lamrin 这个问题想要什么,但我想它是这样的:

<%= link_to_if condition?, image_tag("edit.png", :alt => "Edit"), edit_user_path(user) %>

使用上面的代码,如果条件,图像会有一个链接?是真的

在我的例子中,下面的代码有效(一个更复杂的例子):

link_to_unless disabled, (content_tag :div, "", :class => "vote " + vote_class, :title => title), resource_user_path({ :id => resuser.id, :resource_user => {:id => resuser.id, :resource_id => resource_id, :user_id => current_user_id, :vote => vote_value}}), :remote => true, :method => http_method  

此链接也可能有助于这种方法:

http://railskey.wordpress.com/2012/07/19/rails-link_to-link_to_if-and-link_to_unless/

【讨论】:

    【解决方案3】:

    您可以使用条件链接到:

    <%=
     link_to_if(@current_user.nil?, "Login", { :controller => "sessions", :action => "new" }) do
       link_to(@current_user.login, { :controller => "accounts", :action => "show", :id => @current_user })
     end
    %>
    

    【讨论】:

      【解决方案4】:

      1) 一种解决方案是在您不想要链接时仅渲染 image_tag,当您希望链接被点击时使用 link_to。您可以使用实例变量来控制要呈现的内容。

      2) 或按照建议使用 Javascript。

      如果要动态执行,请使用 2。

      【讨论】:

        【解决方案5】:

        与按钮不同,不能“禁用”超链接。不过,假设您的页面中包含 jQuery,您可以执行以下操作:

        <%=link_to image_tag("edit.png", :alt=>"Edit"), edit_user_path(user), :id => "mylink" %>
        

        将以下 Javascript 添加到您的页面:

        $('#mylink').click(function(e){
          e.preventDefault();
        });
        

        【讨论】:

        • 借此禁用所有禁用的链接 -- $('a[disabled]').click(function(e){ e.preventDefault(); });
        猜你喜欢
        • 1970-01-01
        • 2020-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 2021-11-01
        相关资源
        最近更新 更多