`

一个避免用户重复点击按钮造成重复数据的小技巧

 
阅读更多

    <script>
        //启用遮罩
        function SetEstopForButton(buttionId) {
            if ($("#btnEstop")[0] == null) {
                $("#" + buttionId).after("<div id='btnEstop' style='z-index:999999;position:absolute;background-color:#ccc;filter:Alpha(Opacity-30);background:url(/images/ui-bg_flat_0_aaaaa_40x100.png) #aaaaaa repeat-x 50% 50%;opacity:0.3;'></div>");
                $("#btnEstop").css("width", ($("#" + buttionId).outerWidth() + 4));
                $("#btnEstop").css("height", ($("#" + buttionId).outerHeight() + 4));
                $("#btnEstop").css("left", ($("#" + buttionId).offset().left - 2));
                $("#btnEstop").css("top", ($("#" + buttionId).offset().top - 2));
            }
        }

        //移除遮罩
        function RemoveEstopForButtton() {
            $("#btnEstop").remove();
        }

        //是否已经点击了按钮
        var _isChickButton = false;

        function IR_StopContinuteClick(fun, buttonId) {
          
            if (typeof (fun) != "function") {
                return false;
            }

            //先判断是否已经点击了
            if (_isChickButton) {
                return false;
            }
            _isChickButton = true;

            //设置提交按钮不可编辑
            SetEstopForButton(buttonId);

            if (!fun()) {
                //恢复提交按钮编辑
                RemoveEstopForButtton();
                _isChickButton = false;
            }
            return true;
        }

    </script>

    <script type="text/javascript">

        function CheckData() {

            return IR_StopContinuteClick(DoCheck, "myBtn");

        }

        function DoCheck() {
            var username = document.getElementById("userName").value;
            if(username=="") {
                return false;
            }
            return true;
         }
    </script>

 

<form id="form1" runat="server">
    <div>
        <input id="userName" />
        <input type="button" value="提交"  id="myBtn" onclick="return CheckData()"/>
        <input value="启用遮罩" onclick="SetEstopForButton('myinput')" id="myinput" type="button" />
        <input value="移除遮罩" onclick="RemoveEstopForButtton()" id="Button1" type="button" />
    </div>
    </form>

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    word使用技巧大全

    24、如何将一个表格垂直拆分为两个的表格 87 25、巧用Word的扩展选定功能 87 26、Excel单元格多于15位数字的输入 87 27、Word中磅与厘米的换算 87 28、计算机中容量单位的换算 88 29、在Excel中复制上一单元格 88 30...

    EXCEL函数公式集

    重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动...

    Excel公式大全操作应用实例(史上最全)

    重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动...

    C#编程经验技巧宝典

    103 &lt;br&gt;0167 锁定文本框内的文本 103 &lt;br&gt;0168 使用Message.Show输出用户信息 104 &lt;br&gt;5.3 图片数据处理技巧 104 &lt;br&gt;0169 如何将图片存入数据库 104 &lt;br&gt;0170 如何将图片从数据库中读取...

    excel的使用

    自定义函数,也叫用户定义函数,是Excel最富有创意和吸引力的功能之一,下面我们在Visual Basic模块中创建一个函数。 在下面的例子中,我们要给每个人的金额乘一个系数,如果是上班时的工作餐,就打六折;如果是加班...

    Office2007培训教程.pptx

    2022/12/15 11 2.3 Excel 数据输入基础知识 合并单元格 选中需合并的单元格,点击快捷按钮 ,可将多个单元格合并为一个单元。要恢复单元格的显示,可再次通过该按钮恢复。 Office2007培训教程全文共44页,当前为第...

    精通AngularJS part1

    编写一个按钮指令220 86理解AngularJS的组件指令222 编写一个分页指令222 为分页指令编写单元测试代码223 在指令中使用HTML模板224 从父作用域中隔离指令225 使用@插入属性226 使用=绑定数据227 使用&提供一...

    asp.net知识库

    SubmitOncePage:解决刷新页面造成的数据重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ...

    c语言编写单片机技巧

    可能的话,可以到ic37去买一些小零件,自己搭一个小系统让它工作起来。 HOTLEK的单片机是RISC结构的8位单片机,它可以广泛应用在家用电器、安全系统、掌上游戏等方面。大概来说可以分成I/O型单片机、LCD型单片机...

    PHP和MySQL Web开发第4版pdf以及源码

    9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的标识符 9.10 选择列数据...

    PHP和MySQL Web开发第4版

    9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的标识符 9.10 选择列数据...

    PHP和MySQL WEB开发(第4版)

    9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的标识符 9.10 选择列数据类型 ...

    功能强大的 FXPFTP 工具 FlashFXP 5.4.0 Build 3970 + Portable.zip

    例如笔者将下载列中的较小设为“自动续传”,这样在下载时如果检测到目的文件比较小,那么将自动续传未下的部分,将“相同”设为“自动跳过”这样可以避免重复下载相同的文件,用同样的方法可以对“上传”和“FXP...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 实例015 安装界面设计器 22 实例016 设计Windows系统的运行对话框 界面 23 实例017 设计计算器程序界面 26 实例018 设计关于进销存管理系统的界面 27 第2章 ...

Global site tag (gtag.js) - Google Analytics