如果不相关,我如何删除元素的内容?

时间:2014-11-20 17:40:13

标签: orbeon xforms

如果我有一个带有三个选项A,B,C和I的单选按钮,则输入字段的相关性取决于单选按钮的值是否为A.然后: 如果我在单选按钮中选择值A,则输入字段可见,我可以添加值。但是当我将单选按钮更改为B时,输入字段被隐藏但值仍然存在(如果我再次选择A,我可以看到该值)

是否可以通过事件删除值?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用calculate重置值,您可以将其置于选择值B时用于隐藏输入的xf:bind,如下例所示。对于使用表单生成器创建的表单,有一个RFE表示此行为是开箱即用的,但仅在保存/提交时重置该值,因此如果您在A和B之间来回切换,输入中的值不会丢失,但在保存/提交表单时会将其清除。

<xh:html xmlns:xh="http://www.w3.org/1999/xhtml"
      xmlns:xf="http://www.w3.org/2002/xforms"
      xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
      xmlns:ev="http://www.w3.org/2001/xml-events"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
    <xh:head>
        <xh:title>XForms Hello</xh:title>
        <xf:model>
            <xf:instance>
                <instance>
                    <select1>A</select1>
                    <input/>
                </instance>
            </xf:instance>
            <xf:bind ref="input"
                     relevant="../select1 = 'A'"
                     calculate="if (../select1 = 'A') then . else ''"
                     readonly="false()"/>
        </xf:model>
    </xh:head>
    <xh:body>
        <xf:select1 appearance="full" ref="select1">
            <xf:item>
                <xf:label>A</xf:label>
                <xf:value>A</xf:value>
            </xf:item>
            <xf:item>
                <xf:label>B</xf:label>
                <xf:value>B</xf:value>
            </xf:item>
        </xf:select1>
        <xf:input ref="input"/>
    </xh:body>
</xh:html>