Joe.xu 发表于 2021-1-14 19:32:39

一看就会,超有用活字格技能:一百一十二,自由支配数据校验的时机

本帖最后由 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
页: [1]
查看完整版本: 一看就会,超有用活字格技能:一百一十二,自由支配数据校验的时机