Ruby on rails 如何在Ruby on Rails应用程序中禁用输入字段的所有表单_?
我试图让Rails应用程序干涸一点,所以我想在我的Ruby on rails 如何在Ruby on Rails应用程序中禁用输入字段的所有表单_?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我试图让Rails应用程序干涸一点,所以我想在我的show视图中呈现一个表单,但禁用所有输入字段 // show.html.erb <%= form_for(@project) do |f| %> <%= render 'fields', :f => f %> <% end %> //show.html.erb f%> 最好的方法是什么 谢谢您的帮助。您可以使用样式表来实现此功能 show操作可能在controller中,比如说“Project
show
视图中呈现一个表单,但禁用所有输入字段
// show.html.erb
<%= form_for(@project) do |f| %>
<%= render 'fields', :f => f %>
<% end %>
//show.html.erb
f%>
最好的方法是什么
谢谢您的帮助。您可以使用样式表来实现此功能 show操作可能在controller中,比如说“Project”,因此您可能在样式表中有一个带有控制器名称的文件 现在将表单放在show.html.erb中的一个div中,并给它一个唯一的id,比如“disable_input”,您不会给任何页面中的任何元素这个id 现在禁用css中此div下的所有输入字段。您可以这样编写 禁用输入{
#无论你想做什么
} 因此无需编码。Javascript 一种方法是使用JS。在“显示”视图中包含具有特定类的
div
:
// show.html.erb
<div class='disable_input'>
<%= form_for(@project) do |f| %>
<%= render 'fields', :f => f %>
<% end %>
</div>
轨道
如果您想在服务器端实际生成它,您可以将一个变量传递给partial,该变量将告诉partial是否必须在每个字段上添加disabled选项。不过,这需要更多的工作
使用变量,可以执行以下操作:
<%= form_for(@project) do |f| %>
<%= render 'fields', :f => f, :disabled => true %>
<% end %>
f、 :disabled=>true%>
部分:
<% disabled ||= false
#We do this so if disabled is not passed to the partial it doesn't crash.
# We default it to false
%>
<% # Then for all your fields, add disabled: disabled %>
<%= f.text_field :some_attribute, disabled: disabled %>
您可以将所有字段包装在
//show.html.erb
f%>
他想在每个输入中添加disabled
属性。就我所知,你不能使用CSSYes来实现这一点,我刚刚做了一些研究,没有办法禁用仅使用CSS的HTML输入字段。不过,那也太好了!您不能仅通过使用CSS禁用一个或多个输入,因为它不仅仅涉及使它们“看起来”被禁用。好的,谢谢。使用jQuery很容易,但如果有人关闭了Javascript怎么办。事实上,我希望有一个更可靠的方法来做到这一点…编辑了我的答案。想不出更干净的方法。如果有办法避免将disabled
传递给每个表单元素,那就太好了。事实上,我最终按照您的建议创建了一个表单生成器。谢谢你让我走上正轨!结果如何?你能在你的帖子中分享这个解决方案来帮助未来的读者吗?谢天谢地,我只是跟着瑞安·贝特的,这真是太棒了!漂亮、干净的把戏:-)
<% disabled ||= false
#We do this so if disabled is not passed to the partial it doesn't crash.
# We default it to false
%>
<% # Then for all your fields, add disabled: disabled %>
<%= f.text_field :some_attribute, disabled: disabled %>
// show.html.erb
<%= form_for(@project) do |f| %>
<fieldset disabled>
<%= render 'fields', :f => f %>
</fieldset>
<% end %>