本帖最后由 Joe.xu 于 2021-1-15 09:21 编辑
很多小伙伴可能都知道,一般单元格设置了数据校验,一旦这个单元格失去焦点,就会触发这个校验,而如果在设计器中设置->应用程序设置中,把当失去焦点不触发校验勾选掉(如下图),会发现设置了数据校验的单元格失去焦点后不会校验了,但再提交数据的时候就会触发校验了。
那如果有这样一个需求,比如填写表单的时候,填了一半想要暂存一下,过一会接着之前的填,那怎么在暂存的时候跳过数据校验,最终保存时触发数据校验呢?
嘿嘿,在无所不能活字格中这是难事儿吗,下面我们就来详细看下如何实现
(1)首先在一个表单中加上数据校验,然后在设计器中设置->应用程序设置中,把当失去焦点不触发校验勾选掉(如上图),关键的页面在设计器中是这样的
(2)在暂存按钮,设置命令,先用一个jS命令将数据校验的方法存起来,再将原来的校验方法放空,直接return,代码如下
- window.oldMethod = Forguncy.ValidationMananger.validateAllCells;
- Forguncy.ValidationMananger.validateAllCells = function(){
- return 0;
- };
复制代码
这样后面对表的操作就不会触发校验了,接着可以根据逻辑对数据表进行添加或者更改
(3)在对表操作完成后,切记:要把之前放空的方法还原,不然整个项目的校验都会失效哦,代码是这样的,
- Forguncy.ValidationMananger.validateAllCells = window.oldMethod;
复制代码
以上三步,就完成了在点击暂存时让校验失效,点击提交时触发校验的功能啦
最后呈上demo
dataValidatet.fgcc
(56.09 KB, 下载次数: 255)
|