我有一个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