【问题标题】:Orbeon: set initial value for fields if a check box is checkedOrbeon:如果选中复选框,则为字段设置初始值
【发布时间】:2018-02-27 16:53:35
【问题描述】:

我有多个地址字段: Street_number、Street_name、City、Country、State、Postal_code。 假设我之前填写了表格

假设稍后在表单中如果我选中一个框,其中一些先前填写的字段连接到一个地址字段

我正在将此地址字段的“初始值”设置为以下代码:

if($concat_checkbox=true())
then concat($Street_num, ' ', $Street_name, , ' ',$City,' ',$State,' ',  $Country,' ',$Postal_code)

Orbeon 抱怨:“不正确的 XPath 表达式”,在这种情况下使用条件的正确方法是什么?

【问题讨论】:

    标签: if-statement xpath checkbox orbeon


    【解决方案1】:

    在 XPath 中,您总是需要有一个 else 条件。在您的情况下,我想您在 Calculated Value 中使用表达式,因此如果未选中该复选框,您只想保留当前值,您可以通过添加 @ 987654322@ 在您的表达式末尾。

    另外,要检查复选框的值,我建议您使用$concat_checkbox/text() = 'true'。

    【讨论】:

    • 我需要的是:如果复选框被选中,一旦提交,该字段应该是只读的,包括连接字段的值,如果未选中,它应该返回可编辑空白供用户输入自己的数据. if ($concat_checkbox/text()='true') then concat($Street_num, ' ', $Street_name, , ' ',$City,' ',$State,' ', $Country,' ',$Postal_code) else .我在计算值中使用了前面的代码。在我使用的只读中:$concat_checkbox=true() 当我测试它时,连接的地址变为灰色(只读),但字段的值不存在。
    • 对于只读,使用$concat_checkbox/text() = 'true'。但这不是串联不起作用的原因。当表单运行时,您可以查看orbeon.log 吗?表达式中可能存在语法错误(例如引用不存在的字段),这会阻止表达式运行。此外,您可以尝试简化表达式,直到它运行为止。 (例如,如果您只输入 $Street_num 而没有 if 或 concat() 会怎样;如果可行,请从那里获取并使表达式更复杂。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多