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

问题描述 投票:12回答:3

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

php drupal drupal-7 drupal-fapi drupal-forms
3个回答
19
投票

您可以使用#states属性来实现。 #states属性可以应用于所有Form API元素。

这里是documentation link的例子。


12
投票

#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'),
            ),
        ),
    );

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.