还在和Orbeon找到我的脚。希望有人可以帮助我以下。我有一个表单,复选框输入有五个选项。每个复选框都有一个文本输入字段。您选择复选框2和文本输入B显示。选择复选框四,文本输入D显示。这很简单,因此在文本输入D上,可见性设置为:
$checkboxes_input = 'Four'
但是,如果我选中复选框2和复选框4,则不显示任何文本输入。那么如何设置文本输入的可见性,使其基于这两个条件显示,例如:
$checkboxes_input = 'Four' or
($checkboxes_input = 'Two' and $checkboxes_input = 'Four')
注意:值得一提的是,如果我使用JavaScript执行此操作,这将很容易。但我想在表单生成器中执行此操作。我看到前一个开发此表单的开发人员创建了一个单独的复选框控件 每个选项都有一个复选框,可以解决我遇到的问题。当然这不是必需的吗?!
非常感谢:)
以下情况似乎正在发挥作用:
$checkboxes_input = 'Four' or
$checkboxes_input = 'Four Two' or
$checkboxes_input = 'Two Four'
Four Two 和 Two Four 的需要是覆盖选择项目的顺序。
这不是很令人满意,但是如果您必须考虑选择的订单选项(这似乎是你做的),条件开始变得愚蠢,例如我需要跟踪三个复选框,所以:
$checkboxes_input = 'Four' or
$checkboxes_input = 'Four Two' or
$checkboxes_input = 'Four Five' or
$checkboxes_input = 'Two Four' or
$checkboxes_input = 'Two Five' or
$checkboxes_input = 'Five Four' or
$checkboxes_input = 'Five Two' or
$checkboxes_input = 'Four Two Five' or
$checkboxes_input = 'Four Five Two' or
$checkboxes_input = 'Two Four Five' or
$checkboxes_input = 'Two Five Four' or
$checkboxes_input = 'Five Two Four' or
$checkboxes_input = 'Five Four Two'
... EEP。因此,如果依赖于这些选项的所有逻辑都将开始变得混乱,那么最好让每个复选框都是它自己的控制器呢?
答案 0 :(得分:1)
这是一个更好的方法:
xxf:split($checkboxes_input) = 'Four'
这个表达式在空格上分割复选框组的空格分隔值,然后检查'四'包含在结果序列中。
此解决方案没有contains()
解决方案的缺点,如果您的项目值包含在另一个项目值中,则该解决方案将失败。说:
contains('baz foobar', 'foo')
返回true()
。
答案 1 :(得分:0)
知道了:
SELECT ... FOR UPDATE
......所以在我的情况下:
contains()
...所以只要选中值为Four的复选框,那么对于可见性条件,这将是真的。