2011-11-10 150 views
2

我做了以下做一个整版只读,使用Making an Entire Instance Read-Only在XForms中,如何使所有字段只读,除了几个字段?

<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()"/> 

那么,有没有为单独的几个节点的表单实例覆盖全局只读设置?

回答

3

正如您所指出的那样,与readonly="false()"的绑定没有效果,因为这是默认设置,并且它不会覆盖另一个绑定,说明此节点是只读的,根据规则multiple binds on a given node

但是,您可以编写一个单一的绑定,使您的实例中的所有叶元素(即不包含任何其他元素的元素://*[empty(*)])只读,但特定元素除外。例如:

<xforms:bind ref="//*[empty(*)] except (/some/node, /some/other/node, …)" 
      readonly="true()"/> 
相关问题