layui laydate日期初始化的一些坑

layui laydate日期初始化的一些坑

  • 背景
  • 坑一:利用class属性初始化时间控件失败
  • 坑二:后加载页面时间控件初始化失败
  • 坑三:结束时间需要默认追加23:59:59

背景

在日常开发中,总是会不可避免的用到日期插件,不同的日期插件功能上大同小异,UI上也是各有各的特点,个人项目中用的比较的多的时间插件是bootstrap-datetimepicker 插件,日期的UI样式是这样的
在这里插入图片描述
有时候觉得bootstrap-datetimepicker的UI有点看厌了,就会换一下layui 的 laydate 来感受一下,laydate的UI样式是这样的
在这里插入图片描述
今天讲述的问题就是在使用layui laydate时间插件的过程中遇到的一些问题。

坑一:利用class属性初始化时间控件失败

在开发中遇到这样一种情况,页面有多个时间控件,如果每个时间控件都通过元素id去初始化的话,需要写多次,太费劲了,想通过class属性来控制,但是只有第一个生效,效果如下
在这里插入图片描述
页面代码

<div><div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime" id="startTime" placeholder="开始时间"></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time" name="endTime" id="endTime" placeholder="结束时间"></div></div><div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime1" id="startTime1" placeholder="开始时间"></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time" name="endTime1" id="endTime1" placeholder="结束时间"></div></div></div>

页面js代码

var laydate;$(function(){layui.use('laydate', function() {laydate = layui.laydate;laydate.render({elem : '.filter-time',type: 'datetime',trigger : 'click'});})})

通过视频可以看到,通过class属性方式给laydate时间插件初始化elem 的方式只有第一个文本框生效,后面的都不生效,那么此时的解决办法就是遍历给相同class属性的文本框初始化日期插件,更改后的js代码

var laydate;$(function(){layui.use('laydate', function() {laydate = layui.laydate;$('.filter-time').each(function() {laydate.render({elem : this,type: 'datetime',trigger : 'click'});});})})

此时再查看页面效果
在这里插入图片描述

坑二:后加载页面时间控件初始化失败

这时有这样一个需求,就是点击动图中的添加按钮,需要在现有时间控件的下方追加时间控件以及其他参数,追加后的页面如图
在这里插入图片描述
此时追加的元素中时间控件并没有初始化,效果如图
在这里插入图片描述
页面代码如下

<div><div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime" id="startTime" placeholder="开始时间"></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time" name="endTime" id="endTime" placeholder="结束时间"></div></div><div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime1" id="startTime1" placeholder="开始时间"></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time" name="endTime1" id="endTime1" placeholder="结束时间"></div></div></div>
<div id="container" ></div>

js代码如下

var clicknum = 0;
//点击添加按钮
function addWeight() {var html = '<div class="weightdetail" id="weightdetail'+clicknum+'">';html += '<div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime" placeholder="开始时间" /></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time" name="endTime" placeholder="结束时间" /></div><div><button type="button" class="btn btn-danger" onclick="removeweight('+clicknum+',null);">删除</button></div></div>';html += '<div class="form-group"><label class="col-sm-3 control-label is-required">转入权重:</label><div class="col-sm-8"><input name="inWeight"  class="form-control" type="text" placeholder="非零开头的最多带两位小数的数字" ></div></div>';html += '<div class="form-group"><label class="col-sm-3 control-label is-required">转出权重:</label><div class="col-sm-8"><input name="outWeight"  class="form-control" type="text" placeholder="非零开头的最多带两位小数的数字" ></div></div>';html += '<div><hr></div></div>';$("#container").append(html);clicknum ++;
}

分析原因的话,应该是在打开当前页面是,class属性包含filter-time的元素已经初始化过了,而后面点击添加按钮新追加的页面内容中的时间控件并没有初始化,这时就需要在新追加页面元素结束之后再对时间控件进行一次初始化。修改后的页面js代码如下

var clicknum = [[${count}]];
//点击添加按钮
function addWeight() {var html = '<div class="weightdetail" id="weightdetail'+clicknum+'">';html += '<div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime" placeholder="开始时间" /></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time" name="endTime" placeholder="结束时间" /></div><div><button type="button" class="btn btn-danger" onclick="removeweight('+clicknum+',null);">删除</button></div></div>';html += '<div class="form-group"><label class="col-sm-3 control-label is-required">转入权重:</label><div class="col-sm-8"><input name="inWeight"  class="form-control" type="text" placeholder="非零开头的最多带两位小数的数字" ></div></div>';html += '<div class="form-group"><label class="col-sm-3 control-label is-required">转出权重:</label><div class="col-sm-8"><input name="outWeight"  class="form-control" type="text" placeholder="非零开头的最多带两位小数的数字" ></div></div>';html += '<div><hr></div></div>';$("#container").append(html);$('.filter-time').each(function() {laydate.render({elem : this,type: 'datetime',trigger : 'click'});});clicknum ++;
}

这样修改后就可以对后追加的页面时间控件进行初始化,修改后页面效果如图
在这里插入图片描述

坑三:结束时间需要默认追加23:59:59

其实第三个情况不算是坑,而是在使用过程中为了提高工作效率会用到的情况,就是说对于结束时间需要默认匹配 23:59:59,而如果没有指定默认时间的话,默认的时分秒是 00:00:00,比如这样
在这里插入图片描述
那么这个时候如果想给通过添加按钮追加的页面内容的结束时间补充默认时分秒为23:59:59,又该如何修改呢,这里我首先修改结束时间的class属性为filter-time2,同时为js增加默认匹配23:59:59的js补充代码,修改后的js代码如下

//点击添加按钮
function addWeight() {var html = '<div class="weightdetail" id="weightdetail'+clicknum+'">';html += '<div class="form-group"><label class="col-sm-3 control-label">时间段:</label><div class="col-sm-3"><input type="text" class="form-control filter-time" name="startTime" placeholder="开始时间" /></div><div style="padding-top: 5px;float: left;">--</div><div class="col-sm-3"><input type="text" class="form-control filter-time2" name="endTime" placeholder="结束时间" /></div><div><button type="button" class="btn btn-danger" onclick="removeweight('+clicknum+',null);">删除</button></div></div>';html += '<div class="form-group"><label class="col-sm-3 control-label is-required">转入权重:</label><div class="col-sm-8"><input name="inWeight"  class="form-control" type="text" placeholder="非零开头的最多带两位小数的数字" ></div></div>';html += '<div class="form-group"><label class="col-sm-3 control-label is-required">转出权重:</label><div class="col-sm-8"><input name="outWeight"  class="form-control" type="text" placeholder="非零开头的最多带两位小数的数字" ></div></div>';html += '<div><hr></div></div>';$("#container").append(html);$('.filter-time').each(function() {laydate.render({elem : this,type: 'datetime',trigger : 'click'});});$('.filter-time2').each(function() {laydate.render({elem : this,type: 'datetime',trigger : 'click',done:function(value) {if (value) {var split = value.split(" ");if (split[1] == "00:00:00") {this.dateTime.hours = 23;this.dateTime.minutes = 59;this.dateTime.seconds = 59;}}}});});clicknum ++;
}

增加的代码部分如图所示
在这里插入图片描述
最后实现的效果如图
在这里插入图片描述
到这里关于本次在使用layui laydate过程中遇到的问题都全部处理完了,记录在这里以备后续查阅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2905911.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【ENSP】交换机和路由器之间实现静态路由

1.概念 三层交换机只能在Vlanif逻辑口配置iP地址 路由器的每一个端口都是另外一个网段 2.实现方法 交换机允许对应vlan通行&#xff0c;配置vlanif的ip地址&#xff0c;做静态路由 路由器&#xff0c;进接口配置对应的ip&#xff0c;路由器和交换机相连的口&#xff0c;进入他的…

【实战】验证可执行文件可靠性| Windows 应急响应

0x01 简介 相信部分朋友已经看过我们的 《Windows 应急响应手册》了&#xff0c;我们这边也得到部分朋友的正向反馈&#xff0c;包括工具、方法等。 Windows 版的应急响应手册中常规安全检查部分第一版就包含了 30 多个检查项目&#xff0c;按照我们的风格&#xff0c;每个检…

备忘录删除了怎么恢复?解锁4个简单方法

误删除苹果备忘录是一个常见的问题&#xff0c;而且很容易导致我们遗失重要信息的情况。但是&#xff0c;如果您不幸误删了备忘录&#xff0c;也不必过分担心&#xff0c;因为有几种简单的方法可以帮助您恢复这些备忘录。备忘录删除了怎么恢复&#xff1f;在本文中&#xff0c;…

R语言使用dietaryindex包计算NHANES数据多种营养指数(2)

健康饮食指数 (HEI) 是评估一组食物是否符合美国人膳食指南 (DGA) 的指标。Dietindex包提供用户友好的简化方法&#xff0c;将饮食摄入数据标准化为基于指数的饮食模式&#xff0c;从而能够评估流行病学和临床研究中对这些模式的遵守情况&#xff0c;从而促进精准营养。 该软件…

2023年财报大揭秘:下一个倒闭的新势力呼之欲出

3月25日&#xff0c;零跑汽车公布了他们2023年的财报。财报数据显示&#xff0c;零跑亏损了42亿元。恰逢近段时间众多新势力车企皆公布了年报&#xff0c;而亏损也成了大家避不开的话题。那今天就让我们一起盘点一下各个车企的财报吧&#xff01; 2023年财报大揭秘&#xff1a;…

Sip-6002D 双按键SIP对讲求助终端

Sip-6002D 双按键SIP对讲求助终端 一、描述 SV-6002TP是我司的一款壁挂式一键求助对讲终端&#xff0c;具有10/100M以太网接口&#xff0c;支持G.711、G.722音频解码&#xff0c;其接收SIP网络的音频数据&#xff0c;实时解码播放&#xff0c;还配置了麦克风输入和扬声器输出…

UI的设计

一、RGB888的显示 即红色&#xff0c;绿色&#xff0c;蓝色都为8位&#xff0c;即通常说的24位色。可以很好显示各种过渡颜色。从硬件上&#xff0c;R、G、B三基色的连接线各需要有8根&#xff0c;即24根数据线&#xff1b;软件上存储的数据量也需要24位&#xff0c;即3个字节&…

led驱动恒流电源0-10v可控硅调光电源控制芯片SM2318EA

LED驱动恒流电源、0-10V可控硅调光电源以及控制芯片是LED照明系统中重要的组成部分。它们共同协作&#xff0c;实现对LED灯的亮度、颜色等特性的精确控制。 1. LED驱动恒流电源&#xff1a;由于LED的伏安特性是非线性的&#xff0c;且其亮度与电流直接相关&#xff0c;因此需要…

Keil MDK如何主题美化和代码美化

目录 概要 下载地址&#xff1a;Keil MDK主题美化和代码美化 保存插件 配置MDK 使用方法 MDK配色 概要 编写代码时&#xff0c;缩进和括号的使用对于代码的清晰度和可读性至关重要。手动调整这些格式细节不仅费时&#xff0c;还容易出错。幸运的是&#xff0c;有许多工具…

python如何获取word文档的总页数

最近在搞AI. 遇到了一个问题&#xff0c;就是要进行doc文档的解析。并且需要展示每个文档的总页数。 利用AI. 分别尝试了chatGPT, 文心一言&#xff0c; github copilot&#xff0c;Kimi 等工具&#xff0c;给出来的答案都不尽如人意。 给的最多的查询方式就是下面这种。 这个…

JVM篇详细分析

JVM总体图 程序计数器&#xff1a; 线程私有的&#xff0c;每个线程一份&#xff0c;内部保存字节码的行号&#xff0c;用于记录正在执行字节码指令的地址。&#xff08;可通过javap -v XX.class命令查看&#xff09; java堆&#xff1a; 线程共享的区域&#xff0c;用来保存对…

Codeforces Round #818 (Div. 2) A-C

人类智慧 A. 题意&#xff1a;求满足1<a,b<n且lcm(a,b)/gcd(a,b)<3的(a,b)的个数 转化 a/gcd*b*gcd<3 可以划归为1*2 1*1 2*1 3*1 1*3 则可以转变成一个统计倍数问题 #include<bits/stdc.h> using namespace std; using ll long long; using pii pair&…

电脑最高可以装多少内存?电脑内存怎么装?

大家好&#xff0c;我是来自兼容性之家的&#xff01; 通常我们的家用电脑主机有8到16GB的运行内存。 极少数高端用户会使用32至64GB内存。 比较高端的工作站的内存在128GB左右。 同时&#xff0c;家用电脑的硬盘容量约为1TB。 那么你有没有想过一台电脑可以拥有的最大内存量…

Spring Boot 工程开发常见问题解决方案,日常开发全覆盖

本文是 SpringBoot 开发的干货集中营&#xff0c;涵盖了日常开发中遇到的诸多问题&#xff0c;通篇着重讲解如何快速解决问题&#xff0c;部分重点问题会讲解原理&#xff0c;以及为什么要这样做。便于大家快速处理实践中经常遇到的小问题&#xff0c;既方便自己也方便他人&…

氮气柜常用的制作材质有哪些?

氮气柜主要用于存储对湿度敏感或需要在低氧环境中保存的精密部件、电子元器件、化学品、文物等&#xff0c;需要确保柜体的密闭性和内部环境的稳定&#xff0c;以防止氧化、受潮或变质。 常见的材质有冷轧钢板&#xff0c;冷轧钢板通过冷轧工艺使钢材组织更紧密&#xff0c;从而…

代码随想录算法训练营 Day31 贪心算法1

Day31 贪心算法1 理论基础 贪心算法的本质&#xff1a;找到每个阶段的局部最优&#xff0c;从而去推导全局最优 贪心的两个极端&#xff1a;要么觉得特别简单&#xff0c;要么觉得特别难 贪心无套路 不像二叉树、递归&#xff0c;有固定模式 贪心题目的思考方式 做题的时候…

漏洞挖掘 | SRC中信息收集姿势分享

前言 前前后后挖了四个月的EDUSRC&#xff0c;顺利从路人甲升到了网络安全专家&#xff0c;从提交的内容来看大部分还是以中低危为主&#xff0c;主打的就是弱口令和未授权。 在这过程中还是比较浮躁的&#xff0c;因此接下来的时间还是要好好沉淀一下自身的技术&#xff0c;学…

全局UI方法-弹窗二-列表选择弹窗(ActionSheet)

1、描述 定义列表弹窗 2、接口 ActionSheet.show(value:{ title: string | Resource, message: string | Resource, autoCancel?: boolean, confrim?: {value: string | Resource, action: () > void }, cancel?: () > void, alignment?: DialogAlignment, …

ubuntu下安装minconda

1.搜索清华源 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.搜索conda 3.选一个合适自己的下载到本地 4.将下载的文件传入到ubuntu中 bash Miniconda3-py311_23.11.0-1-Linux-x86_64.sh 安装 5.source ~/.bashrc 激活即可&#xff08;必要步骤&#xff09;

论文笔记:分层问题-图像共注意力问答

整理了2017 Hierarchical Question-Image Co-Attention for Visual Question Answering&#xff09;论文的阅读笔记 背景模型问题定义模型结构平行共注意力交替共注意力 实验可视化 背景 视觉问答(VQA)的注意力模型在此之前已经有了很多工作&#xff0c;这种模型生成了突出显示…