如何在选择 orbeon 形式的多个复选框时隐藏或显示控件

问题描述

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

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

解决方法

在 XPath 中,Orbeon Forms 用于公式“and”的语言用 and 表示,“or”用 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)