Orbeon表单-重复的截面字段验证

问题描述

我的表单是这样的:https://demo.orbeon.com/demo/fr/orbeon/builder/edit/f34f17613d9dbce14bcdf1219b1a7a6babaeebe2

我要添加这样的验证:

  • 本节中只有一个字段“是/否”可以同时选择值“是”
  • 验证消息应仅出现在具有选定值“是”的字段下

我是否应该创建一些操作来遍历所有“是/否”字段,检查它们的值并在检测到上述情况时引发错误

我的主要问题是如何遍历所有“是/否”字段并检测这种情况。

解决方法

假设您将字段命名为yes-no,则可以使用以下表达式:

string() = 'false' or
count(//yes-no[string() = 'true']) <= 1

使用此表达式,您的意思是以下任何一个答案都是有效的:

  • 它是“否”,因为我们对此没有任何限制,或者
  • 只有一个“是”或更少。

有关string() = 'true'业务的更多信息,请参见Testing on a Yes No Answer field

At most one Yes