如何在 Orbeon Form Runner 的运行时控制 Show/Hide 字段?

How to control Show/Hide fields at Runtime in Orbeon Form Runner?

我在 orbeon 表单生成器中创建了一个表单,其中包含三个 30 个问题,属于 3 个类别。现在我不想向每个人展示所有 30 个问题,我也不想为每个类别创建不同的表格,因为所有这些类别都属于一个模块。

在添加表单时,我有一个下拉问题,例如 "Select Category"。如果用户 select 第一类那么我只需要显示第一类相关问题并隐藏第二类和第三类相关问题。

有什么方法可以在 Form Runner 中完成我的任务吗?

更新:

@ebruchez,我听从了你的建议,我尝试在默认 "contacts" 表单上测试此功能。我在联系表单中创建了一个新的文本字段,名称为 "Account Related Field" 作为标签,名称为 "control-10" 作为控件名称。下面是相同的屏幕截图。

然后我点击 "Account Related Field" 的控制设置,在 "Formulas" 选项卡下,我在 "Visibility" 部分添加了以下 XPath 表达式。 $topic='Account'以下为截图

添加路径表达式后,我保存了联系表并发布了。然后我尝试在表单运行器中打开表单。但是在 select 之后,我无法在 UI 上查看 "Account Related Field" 字段 "topic" 表单运行器中的值是 "Account" 。这是在表单生成器中发布表单后表单运行器的屏幕截图。

我是不是漏掉了什么。请帮助解决问题。仅当 "topic" 字段值为 "Account"

时,我才需要查看 "Account Related Field" 字段

提前致谢。

是的,您可以使用部分设置下的 "Visibility" 公式。例如,如果您的下拉列表名为 foo 并且有两个条目,category1category2,那么您可以写:

$foo = 'category1'

to make the section visible only if the dropdown selected category1, and:

$foo = 'category2'

to make the section visible only if the dropdown selected category2.

doc 可能会有所帮助。