“插入行”按钮,可以设置只允许一秒点击一次吗

如题,希望用js事件中添加控制,防止按钮频繁点击(因为本身有模板web属性性能较低)

如果用户一秒点击多次,就只让按钮生效一次,并且提醒“请勿频繁点击”

--------------------------------------------------------------------------------------

其实这么做我是想实现这个功能,我在列首放置一个数列作为主键,这个主键我给他设置了递增的公式:插入行策略公式MAX(A27)+1,这里A27是列首主键的单元格,但是目前如果用户点击过快会出现这一列的主键重复而且乱序的现象。作为开发者,我们希望这是递增的数列)。(但是如果用户按照正常速度点击“添加行”,倒不会出现这样的现象)

image.png

FineReport 樱满丶祈 发布于 2023-5-10 10:26 (编辑于 2023-5-10 10:40)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2023-5-10 10:28(编辑于 2023-5-10 10:29)

这个点击后,设置按钮不可用,然后延迟函数,延迟一秒后设置可用就可以

=============

var th=this;

th.setEnable(false);

setTimeout(function() {

th.setEnable(true);

}, 1000);

  • snrtuemc snrtuemc 回复 樱满丶祈(提问者) 看修改答案,已经给出,点击事件就可以
    2023-05-10 10:31 
  • 樱满丶祈 樱满丶祈(提问者) 可以实现,但是我测试了一下,如果点击太快了好像还是防止不了一秒添加几行,具体看看完善的问题
    2023-05-10 10:36 
  • snrtuemc snrtuemc 回复 樱满丶祈(提问者) 那就用js插入行,不用再带插入行按钮试试,JS自定义插入和删除行按钮-https://help.fanruan.com/finereport/doc-view-595.html
    2023-05-10 10:37 
  • 樱满丶祈 樱满丶祈(提问者) 回复 snrtuemc 我有个模板web属性:是控制只允许最后一个“插入行”可用的js,把他改成延时0.001秒就不会发现一秒添加几行了,原本是设成0.005秒的 setTimeout(function() { var widgets1 = _g().getWidgetsByName(\"cr1\"); //获取控件名称为cr1的控件数组 var widgets2 = _g().getWidgetsByName(\"cr2\"); //获取控件名称为cr2的控件数组 var widgets3 = _g().getWidgetsByName(\"cr3\"); //获取控件名称为cr3的控件数组 for (i = 0; i < widgets1.length - 1; i++) { widgets1[i].setEnable(false); //遍历禁用控件 } for (i = 0; i < widgets2.length - 1; i++) { widgets2[i].setEnable(false); //遍历禁用控件 } for (i = 0; i < widgets3.length - 1; i++) { widgets3[i].setEnable(false); //遍历禁用控件 } }, 1) //延时0.001s执行
    2023-05-10 11:39 
  • 樱满丶祈 樱满丶祈(提问者) 除非用户两次鼠标的点击间隔小于0.001秒,但是一般来说应该不会有人这么做吧
    2023-05-10 11:41 
最佳回答
0
青春只因年少Lv6中级互助
发布于2023-5-10 10:28(编辑于 2023-5-10 11:11)

插入按钮  默认设置为不可用

设置 初始化事件

var w = this;

setTimeout(function() {

w.setEnable(true);

}, 500)

//0.5秒后启用控件。

----------------------------------------------------------------------------------------------

点击事件 改成如下,不设置插入行功能 使用代码插入行

var w = this;

w.setEnable(false);

setTimeout(function() {

_g().appendReportRC(1,"A3");

}, 500)

----------------------------------------------------------------

我看你的样式,不如把插入行的按钮放在 表格的下方,每次就一个插入行按钮,默认插入到表格的最后

image.png

  • 樱满丶祈 樱满丶祈(提问者) 可以的,但是帮看看完善的问题,点击过快还是防止不了一秒点击多次的问题
    2023-05-10 10:42 
  • 青春只因年少 青春只因年少 回复 樱满丶祈(提问者) 使用自定义插入行 ,不使用按钮 插入行功能 _g().appendReportRC(1,\"A1\")
    2023-05-10 10:50 
  • snrtuemc snrtuemc 回复 青春只因年少 请问你把我的回答在回答一次,有意义吗?
    2023-05-10 11:06 
  • 青春只因年少 青春只因年少 回复 snrtuemc 哪个是你的?
    2023-05-10 11:07 
  • 2关注人数
  • 290浏览人数
  • 最后回答于:2023-5-10 11:11
    请选择关闭问题的原因
    确定 取消
    返回顶部