如果我有一个带有三个选项A,B,C和I的单选按钮,则输入字段的相关性取决于单选按钮的值是否为A.然后: 如果我在单选按钮中选择值A,则输入字段可见,我可以添加值。但是当我将单选按钮更改为B时,输入字段被隐藏但值仍然存在(如果我再次选择A,我可以看到该值)
是否可以通过事件删除值?
答案 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>