中关村在线

软件

FineReport日期控件JS校验

在内置参数查询界面中,可对数据进行有效性校验。例如针对开始日期和结束日期两个参数,需确保二者均不为空,且结束日期必须晚于开始日期,同时还应限制在开始日期之后的特定时间范围内,否则弹出相应提示。该逻辑可通过在查询按钮上绑定事件实现。以下将以FineReport电子表格为例,详细介绍具体配置步骤与操作方法。

1、 效果所示:

2、 详见效果图中的报错提示。

3、 启用模板

4、 打开位于 %FR_HOME%WebReportWEB-INFreportletsdocParameterTimeScale 路径下的 TimeScale.cpt 模板文件。

5、 参数设置界面所示

6、 新增事件

7、 为查询按钮添加点击事件,具体JavaScript代码如下所示。

8、 若开始日期为空或未赋值,则进行相应处理。

9、 开始时间不能为空,请输入有效日期后重试。

10、 };

11、 若结束日期为空或未填写,则进行相应处理。

12、 结束时间不能为空,请填写完整信息后再提交。

13、 };

14、 判断起始日期是否晚于截止日期

15、 开始时间不能晚于结束时间,请检查后重新输入。

16、 }

17、 将起始日期字符串转换为Date对象,以便进行日期相关的操作和计算。

18、 将结束时间字符串转换为日期对象,便于后续的时间计算与处理操作。

19、 将结束日期与开始日期的毫秒差值转换为天数,通过除以每日的毫秒数(1000×60×60×24)实现。

20、 若结束日期超出开始日期15天以上,则执行相应操作。

21、 结束日期不能超过开始日期15天,否则将提示错误并终止操作。

22、 }

23、 尽管参数控件支持校验设置,但需点击控件后才触发,因此参数界面的必填项及比较校验应统一在查询按钮中进行处理。

24、 查看效果

25、 选择起止时间,若间隔超过15天,系统将弹出提示框进行分页预览模板操作。

26、 上述JavaScript代码在火狐、谷歌及IE9等现代浏览器中运行正常,但在IE8及更早版本中无法正确弹出计算两个日期差值的提示框。需替换为兼容性更好的代码以确保功能正常运行。

27、 若开始日期为空或未赋值,则执行相应处理操作。

28、 开始时间不能为空,请输入有效日期后重试。

29、 };

30、 若结束日期为空或未填写,则进行相应处理。

31、 结束时间不能为空,请填写完整信息后再提交。

32、 };

33、 判断起始日期是否晚于截止日期。

34、 开始时间不能晚于结束时间,请检查后重新输入。

35、 }

36、 将给定的日期字符串转换为月-日-年格式,通过创建一个新的Date对象实现,传入拼接后的年、月、日部分,确保日期以MM-dd-yyyy的形式正确解析和显示。

37、 将结束日期与开始日期的时间差值从毫秒转换为天数,计算公式为:(结束时间 - 开始时间) ÷ 1000 ÷ 60 ÷ 60 ÷ 24。

38、 若结束日期超出开始日期15天以上,则执行相应操作。

39、 结束日期不能超过开始日期15天,请重新选择日期范围。

40、 }

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具