我使用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提供的代码,但是属性是“必需的”。所以这失败了。
<xforms:bind ref="instance('form-name')/some-node" readonly="false()"/>
那么,仅仅为几个节点覆盖表单实例的全局只读设置吗?
答案 0 :(得分:3)
如您所述,与readonly="false()"
的绑定无效,因为这是默认设置,并且根据管理multiple binds on a given node的规则,它不会覆盖另一个绑定,表示此节点是只读的。
但是,您可以编写一个绑定,使您实例中的所有叶元素(即不包含任何其他元素的元素://*[empty(*)]
)只读,但特定元素除外。例如:
<xforms:bind ref="//*[empty(*)] except (/some/node, /some/other/node, …)"
readonly="true()"/>