layui 日期插件layDate 绑定 动态添加 增加多个 行内调用 js代码调用

码海逐星说
• 阅读 8669

layui 日期插件layDate 绑定 动态添加 增加多个 行内调用 js代码调用

起因

本人是在一家互联金融公司,因项目需求 要实现如上图的效果 从网上查阅了很多资料 ,无果而终,最终想到了 动态更改id 避免id重复 调用失败


保守派 --- 行内调用

<!-- 动态增加 时间插件 -->

    <div class="layui-form-item">
        <label class="layui-form-label"><span>付息日期 :</span></label>
        <div class="layui-input-inline">
            <ul id="fuxiTime_containt">
                <li class="clearfix lay-data-list" >
                    <span class="caozuo_btn caozuo_add">增加</span>
                    <label class="layui-form-label"><span>第1次付息日期 :</span></label>
                    <div class="layui-input-inline layer-icon-data">
                        <input type="text" name="interest_payment_time" class="layui-input" id="fuxiTime_1" class="fuxiTime" onfocus="laydate({elem:'#fuxiTime_1',format:'YYYY-MM-DD',theme: '#fdd5004'})" >
                    </div>
                </li>
            </ul>
        </div>
    </div>

切记 要引入 laydate.js 这里用到的是独立版本的 具体用法 可以参照官网文档

//付息日期
    fuxiTime();
    function fuxiTime() {
        if(!$(".fuxiTime .caozuo_btn")) return;
        var i = 2;
        $("ul#fuxiTime_containt").delegate(".caozuo_btn", "click", function() {
            var lis = "<li class='clearfix lay-data-list'>" +
                "<span class='caozuo_btn caozuo_delete'>删除</span>" +
                "<label class='layui-form-label'><span>第" + i + "次付息日起 :</span></label>" +
                "<div class='layui-input-inline layer-icon-data'>" +
                " <input type='text' class='layui-input' id='fuxiTime_" + i + "' class='fuxiTime'  placeholder='' name='interest_payment_time' onfocus=\"laydate({'elem': '#fuxiTime_" + i + "',format:'YYYY-MM-DD'});\" >" +
                "</div>" +
                "</li>";
            if($(this).is(".caozuo_add")) {
                $(this).parents("ul").append(lis);
                i++;
            };
            if($(this).is(".caozuo_delete")) {
                $(this).parent("li").remove();
            };
        })
    }

开放现代写法

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>使用 layDate 独立版</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="format-detection" content="telephone=no">

  <style>
  body{padding: 20px;}
  .demo-input{padding-left: 10px; height: 38px; min-width: 262px; line-height: 38px; border: 1px solid #e6e6e6;  background-color: #fff;  border-radius: 2px;}
  .demo-footer{padding: 50px 0; color: #999; font-size: 14px;}
  .demo-footer a{padding: 0 5px; color: #01AAED;}
  </style>
</head>
<body>
<!-- <input type="text" class="demo-input" placeholder="请选择日期" id="test1"> -->

<input type="text" class="demo-input" key='add_time1' placeholder="请选择日期" id="add_time" />
<button class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal addTime1" data-type='addTimes' onclick="addTime()" >
  <i class="layui-icon">&#xe615;</i>增加
</button>


<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="laydate/laydate.js"></script> <!-- 改成你的路径 -->
<script>
// lay('#version').html('-v'+ laydate.v);

//执行一个laydate实例
laydate.render({
  elem: '#add_time' //指定元素
});
</script>

<script>
var num = 2;

function addTime(){
  $('.addTime'+(parseInt(num)-parseInt(1))).after(
    "<br><br>"+
    "添加"+num+"时间:"+
    "<input type='text' class='demo-input' key='add_time"+num+"' placeholder='请选择日期' id='add_time"+num+"'>"+
    "<button class='layui-btn layui-btn-sm layui-btn-radius layui-btn-normal addTime"+num+"' data-type='addTimes'>"+
          "<i class='layui-icon'>&#xe615;</i>增加"+
    "</button>"
  );
  //执行一个laydate实例
  laydate.render({
    elem: '#add_time'+num       //指定元素
  });

  num++;
}


</script>
</body>
</html>

关于 日期插件 样式说明

layui 日期插件layDate 绑定 动态添加 增加多个 行内调用 js代码调用


layui 日期插件layDate 绑定 动态添加 增加多个 行内调用 js代码调用

layDate 版本不同 样式也就不同 当然功能没有太大变化 所以说样式和CSS 没有很大的关联性。


结束

思路固然 重要 , 但是没有先人指路,也是虾扯淡!

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5年前
Java多态实现原理
Java多态概述多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevirtual)和接口引用调用(invokeinterface)的实现则有所不同。类引用调用的大致过程为:Java编译器将Java源代码编译成c
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
4年前
CAS 实现站内单点登录及实现第三方 OAuth、OpenId 登录(二)
一、登录表单<form:form id"loginForm" method"post" commandName"${commandName}" htmlEscape"true"    <form:errors path"" element"em" cssClass"" /    <c:if t
Stella981 Stella981
4年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
4年前
Python调用Ant构建时根据构建状态来决定命令行退出状态
在使用python执行Ant构建时遇到的问题:使用os.system()调用Ant构建时,不论构建成功还是失败(BUILDSUCCESSFUL/BUILDFAILED),命令行的总是正常退出要解决问题:首先想到的是获取ant命令的返回值,根据返回值来决定命令行的退出状态(0或非0,0代表正常退出)查阅相关资料,得知python调用系
Wesley13 Wesley13
4年前
Oracle 行转列使用LISTAGG
使用数据库HRscheme的表作为示例。SELECTt.employee_id,listagg(t.job_id,',')withinGROUP(orderbyt.job_id)FROMjob_historytGROUPBYt.employee_id;     EM
达里尔 达里尔
2年前
给数组添加新数据,判断数据是否重复
多选要进行数组拼接,希望判断往原数组里添的新数据是否重复,封装个简易方法languageconstdataArrayname:'aaa',id:1,name:'bbb',id:2;constnewDataname:'ccc',id:2;//要添加的新数