回答
爲什麼你不把它們從視圖中刪除?
一種可能性是使用ActiveRecord中的persisted?
函數來檢測表單對象是否已經保存到數據庫,而不是新對象。
<%= form_for @user do |f| ->
<%- if @user.persisted? %>
<%# Will only show if @user has been saved to the database %>
<%= f.text_field :some_attribute_to_show_during_edit %>
你有3個常用的選項,使字段不會在頁面上顯示出來:
- 創建隱藏式輸入字段
- 隱藏與CSS領域
- 略去領域從頁面
這個答案描述了所有這些以及如何使用它們。在你的具體情況下哪個效果最好取決於你想要完成的事情。我最新的應用程序使用所有這些技術,有時它們都在同一頁面上。
這些不是唯一的選擇,但是這涵蓋了隱藏字段的最常見要求。
隱藏式輸入字段
HTML有一個名爲「隱藏」類型的輸入字段,可以讓你保持表單提交時將被髮送到服務器的所有其他領域的頁面上的數據。但是,隱藏類型字段永遠不能更改爲顯示字段;它總是隱藏的。你可以這樣做,像這樣:
<input type="hidden" id="my_id" name="my_name" value="my value">
與導軌形式助手,你可以使用這個標籤來達到同樣的效果:
<%= f.hidden_field :my_id, value: my.value %>
或者,如果你的數據不是你可以使用這個標籤與模型對象關聯:
<%= hidden_field_tag :my_id, my.value %>
你可以找到在[Rails的指南表格助手]更多信息 1頁的Other Helpers of Interest部分。當您創建一個場
CSS樣式隱藏字段
,您可以使用CSS樣式,以確定該字段的初始可見性。使用CSS樣式,該字段對用戶不可見,但在提交表單時會將其發送到服務器。
您可以使用CSS樣式在HTML元素上使用style="display: none;"
屬性來隱藏字段。這裏有一個簡單的HTML例子:
<input type="text" style="display: none;" id="my_id" name="my_name">
與任何Rails的助手用來創建一個輸入框,你可以使用style: "display: none;"
HTML屬性選項,比如:
<%= f.text_field :my_field, style: "display: none;" %>
這通常是有用的,如果你有動態的Javascript行爲,稍後會在某些事件發生時顯示該字段,但是,該技術在您不需要它們時避免顯示字段也很有用。從頁面
當您在Rails的意見編寫條件的代碼,從而使某些字段發送到呈現的頁面,有的不是,此選項很有
省略領域。以下是如何做到這一點:
<%= form_for @my_model do |f| %>
<% if some_condition %>
<% f.text_field :my_field %>
<% end %>
<% end %>
在這種情況下,my_field
文本字段將只包括在頁面上,如果some_condition
是true
。這使得通過簡單地在渲染視圖時將不需要的組件留空即可清理複雜的表單。
- 1. jQuery的隱藏表單域
- 2. 如何隱藏表單域?
- 3. 動態隱藏表單域
- 4. 如何在opencart中隱藏表單域
- 5. 防止用戶編輯隱藏的表單域
- 6. Rails根據操作隱藏表單字段
- 7. 隱藏DIV中的表單域
- 8. 在編輯表單中設置隱藏字段
- 9. 表單隱藏()
- 10. Angular 2 - 單擊以編輯表單域
- 11. 如何更新Rails 3中AJAX提交的隱藏表單域?
- 12. 在SharePoint列表中隱藏操作菜單
- 13. 使用單選按鈕顯示/隱藏表單元素時編輯表單的顯示/隱藏持久性
- 14. 隱藏地隱藏ActiveAdmin中資源的編輯操作
- 15. ExtJS獲取隱藏表單域的值
- 16. 不是那麼隱藏的表單域
- 17. RailsAdmin - 隱藏表單域和標籤
- 18. Grails數據綁定隱藏表單域
- 19. Symfony呈現隱藏表單域
- 20. 跨站點腳本 - 隱藏表單域
- 21. 如何發送包含隱藏表單域的curl POST表單?
- 22. 隱藏表單2
- 23. 隱藏表單值
- 24. jqGrid表單編輯,HTML代替值在表單域
- 25. 用rails button_to helper生成隱藏的表單域數據?
- 26. 單表隱藏在啓動
- 27. 如何使用下拉列表中的值來隱藏隱藏表單域?
- 28. 如何在rails的編輯動作中重新填充表單?
- 29. 使用域訪問從Drupal站點上的節點編輯表單隱藏其他域的菜單
- 30. 如何編輯動態表單域來創建一個由兩個字段值組成的單個隱藏域