如何为Decimal字段设置验证公式,仅在字段为非空白时进行测试

时间:2017-09-22 22:03:27

标签: orbeon

在表单生成器中,我可以控制数据类型:十进制。必需设置为否。如果输入的值不是正数,我想要验证错误。但如果字段为空,我不想要验证错误。我尝试了很多这样的公式:

xxf:is-blank(xs:string($control-2)) or $control-2 > 0
string-length(xs:string($control-2)) = 0 or $control-2 > 0

xxf:is-blank($control-2) or $control-2 > 0
string-length($control-2) = 0 or $control-2 > 0

如果该字段为非空白,我可以将其转换为带有xs:string()的字符串而不会出现任何问题,但如果该字段为空,则此转换将失败。是否有任何公式可以测试空白的十进制值?

1 个答案:

答案 0 :(得分:1)

如果在表单构建器中您将字段设置为非必需和十进制,则在XForms中,您将拥有type="xf:decimal"。那么,至于约束,只需写xxf:is-blank() or . > 0似乎对我有用。我发现这几乎等同于你的第三个表达式,所以我可能会遗漏一些东西。如果是这种情况,请随时在评论中告诉我。

供参考,这是我在验证和提醒标签中的内容:

Validations and Alerts