【问题标题】:How to hide or show controls while selecting mutilple checkboxes in orbeon form如何在 orbeon 表单中选择多个复选框时隐藏或显示控件
【发布时间】:2021-10-04 05:55:31
【问题描述】:

我有一个要求,我有多个复选框。 在选择一个复选框时,我想取消隐藏一些可能的输入字段,但是如果我选择多个复选框,包括一个取消隐藏该字段的复选框,则输入字段不可见。

对于一个复选框值,我使用 tokenize(../@control-value, '\s+') = 'some Value' 以及如何使用多个条件?是否可以使用 '&&' 和 '||'在奥尔本。另外请告诉我如何使用多个复选框值来取消隐藏输入字段。

【问题讨论】:

    标签: orbeon


    【解决方案1】:

    在 XPath 中,Orbeon Forms 用于公式的语言“和”用and 表示,“或”用or 表示(所以没有&&||,在许多语言中都是如此) .

    所以现在归结为您的条件是什么,例如“如果选中此复选框但未选中其他复选框,则显示控件”。也许以下可以解决问题:

    tokenize(../@control-value, '\s+') = 'some Value' and
    not(count(tokenize(../@control-value, '\s+')) gt 1)
    

    或:

    let $tokens := tokenize(../@control-value, '\s+')
    return
        $tokens = 'some Value' and not(count($tokens) gt 1)
    

    如果您使用 Form Runner,并使用 xxf:split() 函数:

    let $tokens := xxf:split($my-control)
    return
        $tokens = 'some Value' and not(count($tokens) gt 1)
    

    【讨论】:

    • 如果我们选择了多个复选框并比较值,我们需要给出所有值的组合进行比较,因为复选框控件的值是按选择的顺序排列的,并且用空格分隔。我们如何在 orbeon 中解决这个问题? @ebruchez
    • 我不确定我是否理解。这是一个单独的问题吗?您在原始问题中描述的逻辑似乎不需要对其他值进行测试。但如果是这样,我已经在上面展示了如何将标记提取到 $tokens 变量中,然后检查值是否属于该标记列表。这有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 2019-02-15
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多