2011-04-11 36 views
68

我有一個的form_for寫成如下方式:Rails的不可編輯的文本字段

<div class="field"> 
    <%= location.label :city %> 
    <%= location.text_field :city, :disabled=>true%> 
</div> 
<div class="field"> 
    <%= location.label :country %> 
    <%= location.text_field :country, :disabled=>true%> 
</div> 

正如你可以看到2文本框被禁用,因爲它們是由一個jQuery函數自動填充,我不想讓用戶處理它們。 問題是,通過這種方式,視圖doesen不會將該參數傳遞給控制器​​,因爲它被禁用了! 有沒有,我不希望使用隱藏字段,因爲我想顯示一個文本框裏面的結果給用戶

TNX

+0

與你不提交之前提交jQuery的領域? – apneadiving 2011-04-11 10:43:17

+0

我正在這樣做...你不知道是否有一個更清潔的方式來做到這一點? – Joe 2011-04-11 10:47:57

回答

174

做任何其他方式不可編輯text_field傳遞給控制器​​,照顧它只讀!

<%= location.text_field :country,:readonly => true%> 
+9

現貨與此。 [W3形式規範](http://www.w3.org/TR/html4/interact/forms.html#h-17.12.1)將'disabled'和'read-only'區分開來,並明確禁用輸入不應與表格數據一起提交。 – 2011-04-11 11:14:07

+0

謝謝!我忘記了這甚至是一種選擇。 – RyanJM 2011-07-18 22:35:34

+0

同樣在這裏,我也忘記了這個選項.. :) thnx Krunal – RAJ 2012-04-10 11:42:43

1

訣竅是將「對象」與標籤一起用於任何你不想改變的東西。這裏是你應該如何編碼它:

​​
相關問題