我有一個xforms實例,我設置了許多綁定,因此我可以警告用戶輸入錯誤。當實例有效時激活xforms按鈕,否則失活
當他完成時,他需要能夠從實例中提交數據。我想根據實例是否有效在按鈕上切換「激活」。
「攻擊」這個問題的最佳方法是什麼?我目前在按鈕周圍使用了一個組,基本上重複了模型綁定已經說過的內容,這是因爲不同步邏輯而感到冗餘並且容易出錯。
另外:這個實例有3個綁定,但我有其他的30-40綁定。
當前代碼:
<xforms:group ref=".[instance('new-terminology-association')[matches(@code,'^\S+$')][matches(@codeSystem,'^[0-2](\.(0|[1-9][0-9]*))*$')][string-length(@displayName)>0]]">
<fr:button>
<xforms:label ref="$resources/create-association"/>
<xforms:action ev:event="DOMActivate">
...
</xforms:action>
</fr:button>
</xforms:group>
您引用的頁面結束了它的段落:「這意味着默認情況下使用xxf:valid()來控制,例如,按鈕是隻讀還是相關不起作用。」。 我試過了,通過省略父xforms:組並替換爲: .. 這使得按鈕出現和消失,並在輸入上結合遞增=「真」來排序。更好的辦法是激活/關閉,但保持按鈕在視線內。有什麼想法嗎? –
@AlexanderHenket您可以禁用觸發器而不是隱藏它,方法是在某些情況下使用始終只讀的節點。假設它是'instance('private')/ readonly'。然後你會寫:'ref =「if(xxforms:valid(instance('new-terminology-association'),true()))then。else instance('private')/ readonly」>'。 – avernet
@AlexanderHenket此外,如果您使用的是4.x版本,我建議您只使用''而不是''。 ''最初被添加來使按鈕看起來更好,但現在不再需要它們了,因爲我們可以通過普通按鈕上的CSS獲得相同的結果。 –
avernet