2013-10-10 76 views
3

我最近一直在使用Ruby on Rails,並遇到了一個我無法弄清楚的問題。我需要創建一堆不起作用的表單模型。這是他們應該有提交按鈕,但它不應該做任何事情被點擊。通常使用HTML,我會做沿着表單無操作Ruby on Rails

<form action="#"> 
</form> 

試圖將它轉換爲使用Rails的形式傭工線的東西,我也做了以下

<%= form_tag "#" do %> 
    <%= label_tag :username, "Username: " %> 
    <%= text_field_tag :username %> 
    <br /> 
    <%= label_tag :password, "Password: " %> 
    <%= password_field_tag :password %> 
    <br /> 
    <%= submit_tag "Login" %> 
<% end %> 

這會產生一種形式,類似於我想要實現,但是當點擊提交按鈕時,它會嘗試訪問/#而不是所需的結果。目前我唯一能想到的就是設置按鈕的disabled屬性,但有沒有更好的方法?

回答

2

不幸的是,這不能用表單助手來實現。定義form_forform_tag需要對錶單執行操作。你可以設置

:action => "#" 

但是這將需要在路由中包括動作 - >有一個控制器爲它做動作 - >再次渲染一些頁面。

您可以在使用javascript加載後操作表單(但請記住將:remote設置爲true)。或者,或者,如果你堅持使用的形式助手 - 一個button_tag更換submit_tag:

<%= button_tag "Login", :type => 'button'%> 
+0

這工作,謝謝。雖然這兩個答案都是正確的,但是這個更詳細地說明了爲什麼我所做的沒有工作,這就是我選擇它的原因。 – lafferjm

1

您是否試過用button_tag而不是submit_tag?見here。只要確保你沒有使用默認設置,或者你會馬上回到你開始的地方。

2

嘗試

<% form_tag "#", :onSubmit => "return false" do %>