2011-11-10 146 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()"/> 
相關問題