我有一个 link_to_remote,我想确保人们在等待它返回时只能单击它一次。
有人点击后有没有好的方法来禁用它?(更改链接的文本也很好,但我也想禁用它以确保)。
这是 Ruby on Rails 顺便说一句。
我有一个 link_to_remote,我想确保人们在等待它返回时只能单击它一次。
有人点击后有没有好的方法来禁用它?(更改链接的文本也很好,但我也想禁用它以确保)。
这是 Ruby on Rails 顺便说一句。
您不能禁用链接,但可以更改例如 href。
因此,您可以使用 :before 或 :loading 钩子来“禁用”使用 javascript 的链接。
我最终像 Edgard 建议的那样替换了 :before 块中的链接:
<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 确实应该在同一部分中以保持干燥