有没有:disable_with等效于link_to_remote?

时间:2010-03-01 19:29:45

标签: ruby-on-rails ajax link-to-remote

我有一个link_to_remote,我想确保人们只能在等待它返回时点击一次。

有人点击它后有没有一种好方法可以禁用它? (更改链接的文本也很好,但我也想要禁用它以确保)。

这是Ruby on Rails btw。

2 个答案:

答案 0 :(得分:3)

您无法禁用链接,但您可以更改href,例如。

所以你可以使用:before或:使用javascript加载钩子来“禁用”链接。

答案 1 :(得分:3)

我最终更换了以前的链接:像Edgard建议的那样:

<div id="parent">
  <%= link_to_remote "Click Here",
    {:url => "/some_long_url",
    :method => :post,
    :before => "$('#parent').html('#{escape_javascript(link_to("Click Here"))}');"} %>
</div>

注意这使用JQuery。如果你正在使用原型,你可能需要将'.html'方法更改为等效的原型(我相信'.update')。

然后在进行AJAX调用之后,它会重新绘制link_to_remote,例如......

render :update do |page|
  page.replace_html  'parent', :partial => 'partial_containing_your_link_to_remote', :locals => {}
end

第一部分中的link_to_remote应该在同一部分中以保持DRY