用于清除字段的Xforms事件

时间:2014-05-09 11:26:19

标签: xml orbeon xforms

我只需要在xforms事件中提供帮助。我有布尔字段 - 如果选中该字段的复选框,则显示另一个字段,即Payment1(我使用相关的)将金额放入其中 - 然后我有sum字段。问题是当我取消选中时,Payment1的字段值仍然计入Sum字段。如果未选中该复选框,我将非常感谢当前Payment1字段的明确值。

1 个答案:

答案 0 :(得分:1)

一个选项是设置action,将Payment1的值设置为空字符串。

在下面的示例模型中,如果元素bar不等于“checked”(select的值),则元素foo将设置为空字符串。

    <xf:model>
        <xf:instance id="main">
            <data>
                <foo></foo>
                <bar></bar>
            </data>
        </xf:instance>
        <xf:bind nodeset="instance('main')/foo" relevant="following-sibling::bar='checked'"/>
        <xf:action ev:event="xforms-refresh">
            <xf:action if="instance('main')/bar[not(.='checked')]">
                <xf:setvalue ref="instance('main')/foo" value="''"/>                       
            </xf:action>
        </xf:action>
    </xf:model>

以下是select(bar)和输入(foo)的示例:

<table>
    <row>
        <td></td>
        <td>
            <xf:select ref="bar" selection="closed" appearance="full" incremental="true">
                <xf:item>
                  <xf:label>Click Me</xf:label>
                  <xf:value>checked</xf:value>
                </xf:item>
            </xf:select>
        </td>
    </row>
</table>
<table>
    <tr>
        <td>Input Foo: </td>
        <td>
            <xf:input incremental="true" ref="foo"/>
        </td>
    </tr>
</table>