JS实现为控件添加倒计时功能
一.概述
在有些报表需求中,需要为控件添加倒计时功能,限制到某一个时间点后能进行一项操作或不能进行某项操作,比如查询,导出功能等等,又需要人性化地显示还有多少时间,即倒计时功能,比如下图中我们限制这个报表在每天10点后才能查询
当倒计时结束的时候,查询功能可用
这种功能如何实现的呢
二.实现思路
主要原理是利用控件的setEnable(true)/setEnable(false)来进行设置控件的可用与不可用状态,在获取时间的过程中,需要利用到js中的获取时间,利用JS的定时器函数setInterval(function(){},time)来进行定时取得倒时时,并判断倒计时是否结束。
三.实现过程
1、修改模板
以自带的gettingstarted.cpt模板为例,设置初始化时查询按钮不可用,如下图
2、添加倒计时控制功能
为了简化控制流程,把JS代码直接写在查询按钮的初始化后事件中,如下图
代码如下:
1. var h=10;//限制几点可查询
2. var m=00;//限制几分可查询
3. var s=00;//限制几秒可查询
4. //格式化时间
5. function timeToString(a){
6. //小时
7. var s='还有'
8. s+=parseInt(a/3600)+'时';
9. //分
10. s+=parseInt(a % 3600 /60)+'分';
11. //秒
12. s+=parseInt(a % 60)+'秒可查';
13. return s;
14. }
15. var date1=new Date();
16. var date2=new Date();
17. //设置预置可查时间
18. date1.setHours(h);
19. date1.setMinutes(m);
20. date1.setSeconds(s);
21. //比如时间
22. var d=(date1-date2)/1000;
23. //如果初始化时可用,就启用按钮
24. if(d<0){
25. this.setValue('查询');
26. this.setEnable(true);
27. } else {
28. var btn=this;
29. //显示倒计时时间
30. btn.setValue(timeToString(d));
31. //设置不可用
32. btn.setEnable(false);
33. //定时器函数
34. setInterval(function(){
35. //重新设置时间
36. date1=new Date();
37. date2=new Date();
38. date1.setHours(h);
39. date1.setMinutes(m);
40. date1.setSeconds(s);
41. //重新当前时间与设定时间的时间差
42. d=(date1-date2)/1000;
43. if(d<0){
44. btn.setValue('查询');
45. btn.setEnable(true);
46. } else {
47. btn.setValue(timeToString(d));
48. btn.setEnable(false);
49. }
50. },1000);
51. }
3.预览
最终效果如上图.
本文首发CSDN:http://blog.csdn.net/szd_happy/article/details/74295088
JS实现为控件添加倒计时功能的更多相关文章
- asp.net中的ListBox控件添加双击事件
问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...
- 【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样
申明: - 本文适用于WinForm开发 - 文中的“控件”一词是广义上的说法,泛指包括ToolStripItem.MenuItem在内单个界面元素,并不特指继承自Control类的狭义控件 用过To ...
- MFC编程入门之九(对话框:为控件添加消息处理函数)
这一节讲的主要内容是如何为控件添加消息处理函数. MFC为对话框和控件定义了诸多消息,我们对他们操作时会触发消息,这些消息最终由消息处理函数处理,比如我们点击按钮时就会产生BN_CLICKED消息,修 ...
- 如何给ActiveX控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作
上一篇小编带大家熟悉了一下ActiveX的建立以及相关的概念,(http://blog.csdn.net/u014028070/article/details/38424611) 本文介绍下如何给控件 ...
- 增加duilib edit控件的提示功能和多种文字颜色
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41786407 duilib的CEditUI控件内部使用了win32的原生 ...
- repeater中后台动态为控件添加属性
在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e ...
- VS2010/MFC对话框四:为控件添加消息处理函数
为控件添加消息处理函数 创建对话框类和添加控件变量在上一讲中已经讲过,这一讲的主要内容是如何为控件添加消息处理函数. MFC为对话框和控件等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消 ...
- JS数量输入控件
JS数量输入控件 很早看到kissy首页 有数量输入控件,就随便看了下功能 感觉也不怎么难 所以也就试着自己也做了一个, 当然基本的功能和他们的一样,只是用了自己的编码思想来解决这么一个问题.特此给大 ...
- Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件!
源:Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件! 2014年02月06日发布控件的重要更新版本: Victor 串口控件 1.5.0.2 版本 (包 ...
随机推荐
- cas4.2.7实现单点登录
准备前参考: cas server下载地址 cas client 下载地址 安全cookie setSecure详解 Spring通过构造方法注入的四种方式 cas 学习博文 自定义登录页和登录认证 ...
- web—URL不同形式地址的问题
浏览网页时,不同的网站有不同的URL显示方式. 第一种形式: http://www.cnblogs.com/sylarmeng/p/6738695.html 具体的文章用数字(或组合字母)字符串来标识 ...
- ThinkPHP5.0更改框架的验证方法对象->validate(true)->save();
我们更希望看到: // 新增对象至数据表 $result = $Teacher->validate(true)->save(); 而不是: // 新增对象至数据表 $result = $T ...
- Java IO流--练习
1)将若干个Student对象,若干个Teacher对象,写出到d:/0404/a.txt中 2)将该文件中所有Student对象反序列化回来装入List, 所有的Teacher对象反序列化回来转入另 ...
- MySQL存储汉字
之前在网上查找了很多方法,排在前排的都是修改配置文件my.ini的,没有成功,后来找到了一个解决方法: 在建表的时候,在语句后面加上段"engine = innodb default cha ...
- css的定位,relative/absolute/fixed的用法
其实position的值有四个,static/relative/absolute/fixed,而static是默认值,不算具有有定位属性,这里就不讲了. 定位其实就是跟元素设置定位属性,然后设置其对位 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)--My ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6985816.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十)--My ...
- Vulkan Tutorial 14 Integration pipeline
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 我们现在整合前几章节的结构体和对象创建图形管线!以下是我们现在用到的对象类型,作为一 ...
- html5-表格的建立
用表格显示信息调理清楚,使浏览者一目了然.表格在网页中还有协助布局的作用,可以把文字.图像等组织到表格的不同行列.那么,接下来我将讲解一下表格的常用属性. 首先,表格命令 表格的行:tr 每行中的列 ...