2011-08-03 23 views
9

標籤我用下面的代碼:禁用的link_to在Rails3中+

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

我想禁用此鏈接和形象,所以我加了:disabled=>true的代碼,但它不是禁用。爲什麼不,以及如何禁用它們?

+0

由於問題和答案全部投下來,然後我認爲這是錯誤的方法。任何人都可以有更多的經驗,爲什麼一切都被拒絕投票? –

+0

不能說爲什麼投下來,但可能是因爲他們不容易*答案。禁用不會禁用超鏈接 - http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-87355129因此,您將需要一個條件鏈接或JavaScript來執行禁用 –

回答

6

與按鈕不同,超鏈接不能「禁用」。你可以做到以下幾點不過,假設你有jQuery的包括在您的網頁:

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

添加以下JavaScript到您的網頁:

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

採取這樣可以禁用所有禁用的鏈接 - $('a [disabled]')。click(function(e){ e。的preventDefault(); }); –

0

1)一種解決方案是使剛IMAGE_TAG當你做當你想要鏈接被點擊啓用時,不想鏈接並使用link_to。您可以使用實例變量來控制要呈現的內容。

2)或按建議使用Javascript。

如果您想動態地使用它,請使用2。

-1

你可以使用條件的link_to:

<%= 
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 
%> 
10

我不知道這個問題想要什麼@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/

1

在回答你的問題,Rails中的link_to helper沒有:disabled選項,它也不是元素的有效屬性。我相信人們傾向於在Rails中與此混淆的原因是「:disabled => true」在您使用Bootstrap時會起作用。因此,要解決這個問題,您可以遵循Gupta的方法,或者僅添加Bootstrap(這也會給您一些默認的CSS,所以人們不會因嘗試點擊鏈接而感到沮喪)!

重新:在軌道的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

重新:自舉 「禁用」 類或與引導屬性:http://getbootstrap.com/css/#anchor-element-1

+0

@lamrin,這是否回答你的問題?您正在使用Ruby on Rails,並希望能夠在此代碼中添加「:disabled => true」,對嗎?讓我知道你是否仍然需要幫助! –