2sxc公式自动填充值后如何解除字段锁定允许用户修改?
自动填充日期字段且允许用户修改的解决方案
问题核心:你用的是计算字段,这类字段的取值完全由公式脚本决定,天生处于只读状态,所以不管怎么调整逻辑,字段都会被锁定无法修改。
正确实现方式:改用触发型脚本
不要用计算字段,而是用表单初始化脚本或字段初始化脚本,只在字段为空时自动填充日期,后续允许用户手动修改。
示例代码(表单加载时触发)
function onFormLoad(data, context) { // 替换成你的目标字段名 const targetField = "autoFillDate"; // 字段为空时才填充当前日期 if (!data[targetField]) { data[targetField] = new Date(); } }
示例代码(字段初始化时触发)
function onFieldInit(data, context) { // 当前字段为空时填充日期 if (!data.fieldValue) { data.fieldValue = new Date(); } }
之前写法的问题说明
- 第一种写法:每次执行都返回新的
Date(),字段始终作为计算值存在,自然只读。 - 第二种写法:逻辑本身有漏洞,第一次运行时
context.cache.alreadyRun不存在,不会返回值,之后才返回日期,但本质还是计算字段,依然锁定。
内容的提问来源于stack exchange,提问作者João Gomes
相关产品推荐
相关产品推荐

