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,根据输入动态隐藏或显示字段的主要内容,如果未能解决你的问题,请参考以下文章