回答
为什么你不把它们从视图中删除?
一种可能性是使用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. 如何编辑动态表单域来创建一个由两个字段值组成的单个隐藏域