我执行了以下操作,使用 Making an Entire Instance Read-Only 将整页设为只读。 :
<xforms:instance>
<form>
...
</form>
</xforms:instance>
<xforms:bind ref="instance('form-name')" readonly="true()"/>
但我需要启用几个字段。我尝试了 Multiple binds on a given node 给出的代码但这是为了“需要”的属性(property)。所以这失败了。
<xforms:bind ref="instance('form-name')/some-node" readonly="false()"/>
那么,是否可以单独为几个节点覆盖表单实例的全局只读设置?
最佳答案
正如您所指出的,带有 readonly="false()"
的绑定(bind)没有任何效果,因为这是默认设置,并且它不会覆盖另一个绑定(bind),表明该节点是只读的。规则multiple binds on a given node .
但是,您可以编写一个绑定(bind)来读取实例中的所有叶元素(即不包含任何其他元素的元素://*[empty(*)]
) -仅限,特定元素除外。例如:
<xforms:bind ref="//*[empty(*)] except (/some/node, /some/other/node, …)"
readonly="true()"/>
关于orbeon - 在 XForms 中,如何使除少数字段之外的所有字段为只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8079818/