Orbeon 表单 - 清除下拉标签

Posted

技术标签:

【中文标题】Orbeon 表单 - 清除下拉标签【英文标题】:Orbeon forms - clear dropdown label 【发布时间】:2021-03-15 13:24:28 【问题描述】:

我有 2 个下拉列表(country_1 和 country_2)填充国家/地区。两者都是必需的。如果我在 country_1 下拉菜单中选择 value some,则 country_2 下拉菜单应被清除(值和标签)。

例子:

    在 country_1 下拉列表中,我选择了一些内容。 在 country_2 下拉列表中,我选择了一些内容。 在 country_1 下拉列表中,我更改了值。 country_2 应该被清除。 当我验证表单时,在 country_2 下拉列表中出现错误(因此该值似乎已被清除)。

我想在第 3 步中 country_2 将有空标签。

我为 country_1 下拉菜单添加了值更改操作,这应该会清除 country_2 下拉菜单的值和标签。

示例形式: https://demo.orbeon.com/demo/fr/orbeon/builder/edit/bc71b6532f4faee1ec711105a2db00bb65995d80

源码:https://gist.github.com/mmakos-profidata/9728f086da3abc7bd96af27c8d5a70b8

错误画面:

【问题讨论】:

【参考方案1】:

将您的代码移动到<xf:model> 中就可以了。我已经在demo.orbeon.com 上更新了你的表单,但万一它消失了,这是我直接放在<xf:model> 中的sn-p:

<xf:action event="xforms-value-changed" observer="c_country_1-control">
    <xf:action if="//c_country_1 != 'af'">
        <xf:setvalue ref="//c_country_2"/>
        <xf:setvalue ref="//c_country_2/@label"/>
    </xf:action>
</xf:action>

【讨论】:

嘿亚历克斯,你确定它应该有效吗?我已经发布了这个表格(在demo.orbeon.com),测试了它,我得到了和以前一样的错误。我已经在我的本地环境(orbeon 版本 2019.1.0)上对其进行了测试,但我也遇到了错误。我还确保代码在 中。我更新了我的问题并添加了错误的屏幕截图。 @m.makos 我的错:我更新了上面答案中的代码。您应该使用//c_country_1 而不是. 来访问第一个下拉列表的值。在表单源代码中,我还删除了您在第二行的“值”和“标签”字段中的可见性条件,以便我们可以看到这些值正在重置。 嘿,亚历克斯,仍然没有像我预期的那样工作。清除“值”和“标签”字段对我来说是不够的(这些字段仅用于显示值更改)。下拉列表 c_country_2 上的标签也应该被清除。我已经编辑了我的问题和表格,以简化问题。 啊!该值在数据中被重置,但控件错误地保留了旧值。这是一个错误。我已经创建了问题 #4731,我们会在即将到来的 2020.1 之前及时修复它。 @m.makos 好了,#4731 问题现已修复,将包含在 2020.1 中。

以上是关于Orbeon 表单 - 清除下拉标签的主要内容,如果未能解决你的问题,请参考以下文章

将 orbeon 表单包含到 Angular 应用程序中

Orbeon Forms - 防止表单生成器覆盖表单中的模板

如何在 orbeon 中的所有表单上填充对话框

jQuery 表单清除脚本无法识别下拉菜单

[HTML]表单标签(form表单域input输入表单label标签select下拉表单textarea文本域)

Orbeon 使 Authorization 标头可选