【问题标题】:How to hide input on conditions in Formtastic?如何在Formtastic中隐藏条件输入?
【发布时间】:2016-02-14 06:14:20
【问题描述】:

我继承了一个在 Rails 中使用 ActiveAdmin 和 Formtastic 的项目。我对这两种方法都没有什么经验,但它似乎很简单,可以完成简单的任务。

因此,我的任务是添加一个单选输入,但如果单选与某个值不匹配,则隐藏另一个输入。我到处搜索,似乎找不到任何东西。

这是我的表格:

form do |f|
  f.inputs 'Book Details' do
    f.input :name, required: true
    f.input :has_subtitle, as: radio, required: true
    f.input :subtitle
  end
end

在这种形式中,我只需要显示 :subtitle,如果 :has_subtitle 设置为 true/yes,否则他们不应该看到输入(如果它是可见的,也应该是必需的)。

这可以在 Formtastic 中完成吗?

谢谢!

【问题讨论】:

  • 这听起来不像是 formtastic/Active Admin 问题。听起来您想要一些 javascript 在单选按钮值更改时隐藏字段。您可以将数据元素添加到单选按钮和一些 javascript 以捕获更改事件并隐藏其他字段。
  • formtastic 中的什么让我能够将 javascript 添加到元素?

标签: ruby-on-rails ruby-on-rails-4 activeadmin formtastic


【解决方案1】:
f.input :has_subtitle, as: radio, required: true, { data: { toggle: 'subtitle_input' }}

然后将javascript(这是coffeescript)添加到一个单独的文件(例如form.js.coffee)

$(document).on 'ready page:load', ->
  $('[data-toggle]').on "change", ->
    $($(this).data('toggle')).toggle($(this).val() == 'show')

您可能需要对此进行一些配置,具体取决于单选按钮中的值

然后将其包含在 application.js 中

# application.js
//= require form

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2020-07-29
    • 2022-01-03
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多