Orbeon 表单:单击“提交”后禁用表单字段
Posted
技术标签:
【中文标题】Orbeon 表单:单击“提交”后禁用表单字段【英文标题】:Orbeon form: Disable form fields after clicking "Submit" 【发布时间】:2021-08-04 13:27:21 【问题描述】:我正在尝试配置“发送”进程以将所有字段设置为只读,但它不起作用。这是我在 properties.xml 中的配置:
<property as="xs:string" name="oxf.fr.detail.process.send.*.*">
require-valid
then save
then success-message("save-success")
then xf:setvalue(ref = "//*[xf:readonly]", value = "true()")
</property>
感谢所有建议!
【问题讨论】:
【参考方案1】:您不能使用xf:setvalue
以命令式的方式设置“只读”。相反,“只读”是以声明的方式定义的。在你的情况下,我建议:
当表单提交时,你改变表单的阶段,说“提交”。在您的流程中,您可以使用 (doc):
set-workflow-stage(name = "submitted")
在表单生成器中,您使用表单级公式 (doc) 来声明如果阶段“已提交”,则整个表单是只读的。公式如下所示:
fr:workflow-stage-value() = 'submitted'
另见博文New workflow capabilities in Orbeon Forms 2020.1。
【讨论】:
感谢@avernet,我们是否可以选择默认为系统中的每个表单构建器应用此 fr:workflow-stage-value() = 'submitted'? @Tien 是的,您可以,因为这是在您的properties-local.xml
中定义的流程中完成的,例如使用oxf.fr.detail.process.submit.*.*
之类的属性名称,其中*.*
表示此流程适用于所有应用程序和所有表格。您可以在Wildcards in properties 部分找到更多相关信息。
嗨@avernet,是否可以在创建时为表单构建器只读公式设置默认值?我正在尝试类似: 以上是关于Orbeon 表单:单击“提交”后禁用表单字段的主要内容,如果未能解决你的问题,请参考以下文章