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

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

【问题讨论】:

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

标签: php drupal drupal-7 drupal-fapi drupal-forms


【解决方案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 它在创建内容类型时提供“管理依赖项”选项卡,您可以在其中选择当字段具有特定值时哪些字段可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 2022-01-18
    • 2013-07-23
    • 2020-05-06
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多