gpt4 book ai didi

ruby-on-rails - rails : Best way to conditionally show/hide a form field?

转载 作者:行者123 更新时间:2023-12-04 13:40:24 24 4
gpt4 key购买 nike

我有一个型号文件 具有属性 实物上下文 . Kind 是用作枚举的整数(使用出色的 active_enum gem)。上下文仅适用于类型“2”的文档,即如果文档不是 2 的任何类型,上下文将为空白。

所以在表单页面新建一个Document,我有一个<select>选择类型和上下文的文本区域,最初是隐藏的:

<%= form_for @document do |f| %>

...

<%= f.text_area :context, placeholder: 'Context', style: 'display:none' %>

<%= f.select :kind, Document.active_enum_for(:kind).to_select %>

...

<% end %>

并且使用 jQuery 的 show() 和 hide() 方法在一个绑定(bind)到下拉列表中的 change() 事件的函数中显示和隐藏 textarea。

到现在为止还挺好。但是在 编辑 文档页面,我不希望在初始页面加载时始终隐藏上下文文本区域,因为我们可能正在编辑类型的文档 2 .因此,如果我们正在编辑类型 2 的文档,我希望最初显示 textarea,但在其他情况下隐藏。

这是我现在拥有的:
<% if @document.kind == 2 %>
<%= f.text_area :context, placeholder: 'Context' %>
<% else %>
<%= f.text_area :context, placeholder: 'Context', style: 'display:none' %>
<% end %>

没有更好的方法吗?这对我来说有点罗嗦和多余;有没有办法只打一个电话到 f.text_area并包括 style:有条件的选择?

还是我想多了?

最佳答案

用这个 :

  <%= f.text_area :context, placeholder: 'Context', style: "#{'display:none' if @document.kind == 2}" %>

或者您可以为此添加一个 CSS 类,
display-none{
display:none;
}

<%= f.text_area :context, placeholder: 'Context', class: "#{'display-none' if @document.kind == 2}" %>

谢谢

关于ruby-on-rails - rails : Best way to conditionally show/hide a form field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18182346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com