历史版本5 :JS实现防止重复点击提交 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

日常业务中涉及到大数据填报时,填报时间较长。如果数据还未提交成功前,又点了提交按钮,就会重复提交。如何避免这种情况发生呢?

1.2 解决思路

利用JS 接口在填报后事件中禁用提交按钮,然后在填报成功事件中启用按钮,这样就能保证数据成功入库后才可以再次点击提交。接口说明可参考:工具栏接口


2. 示例编辑

2.1 准备模板

打开内置模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm.cpt

点击可下载模板:LineForm.cpt

模板为一个已经做好的填报模板,可以直接用来修改。

2.2 添加按钮

在 B1 单元格中添加一个「按钮控件」,设置按钮类型为「普通」,按钮名字为「提交」。如下图所示:

2.3 添加事件

选中提交按钮所在 B1 单元格,添加一个点击事件,实现点击后提交和提交后不能再点击的功能。如下图所示:

 JavaScript 代码如下:

_g().verifyAndWriteReport();//校验并提交
this.setEnable(false);//设置按钮不可用

2.4 效果预览

保存报表,点击「填报预览」,随便修改一个数据,点击提交按钮,提示「成功」后,提交按钮不可用。如下图所示:

2.4.1 PC 端

3DD68A99-76C7-4DDD-ACCA-B065E9A3252C.GIF

2.4.2 移动端

2021-06-04_9-58-19.gif

3. 模板下载编辑

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\JS实现放置填报报表二次提交.cpt

点击下载模板:JS实现防止填报报表二次提交.cpt