drupal:表单 API,根据输入动态隐藏或显示字段

Posted

技术标签:

【中文标题】drupal:表单 API,根据输入动态隐藏或显示字段【英文标题】:drupal: Form API, dynamically hide or show fields based on input 【发布时间】:2012-09-27 00:12:39 【问题描述】:

我正在构建一个表单模块。早期的领域之一是一组单选按钮。默认情况下,第一个按钮被选中。接下来我会有一系列的选择框。一个需要可见,其他则不可见。然后当用户选择不同的单选按钮时,我希望显示或隐藏不同的选择框。如何在默认情况下隐藏字段和标签,然后根据选择的单选按钮(或其他选择框选项)显示它?

【问题讨论】:

我在手机上,所以无法为您轻松找到链接。检查 Form API Referenceenc,您将看到要设置的 #ajax 属性。这就是我们通常的做法。但原生 javascript 或 jquery 也是一种选择。 【参考方案1】:

您可以使用#states 属性来实现这一点。 #states 属性可以应用于所有表单 API 元素。

这是documentation link 的示例。

【讨论】:

非常感谢!我正在查看 api,但那里有很多,所以很容易错过。 真的很高兴它有帮助:)...-Muhammad. 这是 Lullabot 的另一个文档链接,它解释了 Drupal 表单 API 状态 - lullabot.com/articles/form-api-states【参考方案2】:

#states 的简单用法示例:仅当名称为“type”的另一个字段的值为“sell”时才显示名称为“item”的选择字段

$form['item'] = array( 
        '#title' => t('Task Item'),
        '#type' => 'select',
        '#states' => array(
            // Only show this field when the value of type is sell.
            'visible' => array(
                ':input[name="type"]' => array('value' => 'sell'),
            ),
        ),
    );

【讨论】:

这将用于哪个钩子?【参考方案3】:

您也可以使用“条件字段”模块。 这是链接:https://drupal.org/project/conditional_fields 它在创建内容类型时提供“管理依赖项”选项卡,您可以在其中选择当字段具有特定值时哪些字段可见。

【讨论】:

以上是关于drupal:表单 API,根据输入动态隐藏或显示字段的主要内容,如果未能解决你的问题,请参考以下文章

根据用户输入显示或隐藏div

web前端-Vue动态显示隐藏表单el-form-item

如何根据 Django 下拉菜单中的选择显示和隐藏表单字段

动态 iframe 高度取决于隐藏/显示

如何在颤动中显示带有提交按钮和隐藏输入字段的html表单

尝试根据日期条件隐藏 Drupal 视图输出中的 CC 字段