• 一个页面多个地方使用日期组件


    开发页面中有多个地方需要选择日期,所以选择了layui的 laydate控件,但是在点击第二个“日期选择框”时,生成的选择框只是显示一下就消失了,参考网上的资料,是由于我们点击了“日期选择框”后 ,laydate会给input框增加一个 lay-key=”1”,找到了如下的解决方法:通过类选择“日期选择框”,遍历循环创建实例。

    1.  
      <!DOCTYPE html>
    2.  
      <html lang="en">
    3.  
      <head>
    4.  
      <meta charset="UTF-8">
    5.  
      <title>Title</title>
    6.  
      <script type="text/javascript" src="../public/3rdLibs/jquery/v3.2.1/jquery-3.2.1.min.js"></script>
    7.  
      <script type="text/javascript" src="../public/3rdLibs/laydate/v5.0.9/laydate/laydate.js"></script>
    8.  
      </head>
    9.  
      <body>
    10.  
      <div class="">
    11.  
      上课日期:
    12.  
      <input type="text" class="J-startTime" value="" placeholder="请选择开始日期" readonly="readonly">
    13.  
      <span class="from-to">&nbsp-&nbsp</span>
    14.  
      <input type="text" class="J-endTime" value="" placeholder="请选择结束日期" readonly="readonly">
    15.  
      </div>
    16.  
      <div class="">
    17.  
      考试日期:
    18.  
      <input type="text" class="J-startTime" value="" placeholder="请选择开始日期" readonly="readonly">
    19.  
      <span class="from-to">&nbsp-&nbsp</span>
    20.  
      <input type="text" class="J-endTime" value="" placeholder="请选择结束日期" readonly="readonly">
    21.  
      </div>
    22.  
      <script>
    23.  
      $(function () {
    24.  
      //点击“开始日期”弹出日期选择框,选择日期后,结束日期默认等于开始日期,且结束日期最小值为对应的开始日期
    25.  
      //遍历循环创建实例
    26.  
      var endDate=[];
    27.  
      $('.J-startTime').each(function(index){
    28.  
      var _this=this;
    29.  
      laydate.render({
    30.  
      elem: _this,
    31.  
      trigger:'click',
    32.  
      done: function(value, date){
    33.  
      $(_this).nextAll('.J-endTime').val(value);
    34.  
      endDate[index].config.min ={
    35.  
      year:date.year,
    36.  
      month:date.month-1, //关键
    37.  
      date: date.date,
    38.  
      };
    39.  
      }
    40.  
      });
    41.  
      });
    42.  
      $('.J-endTime').each(function (index) {
    43.  
      var _this=this;
    44.  
      endDate[index]=laydate.render({
    45.  
      elem:_this,
    46.  
      });
    47.  
      });
    48.  
      });
    49.  
      </script>
    50.  
      </body>
    51.  
      </html>

    通过数组endDate存储“开始日期”对应的“结束日期”,动态设置“结束日期”的最小值。

    注意:

    1、endDate[index].config.min是一个对象,必须分别设置:年、月、日;

    2、date中的月从1开始,而endDate[index].config.min中的月从0开始,所以需在date.month-1基础上赋值。

    转自于:https://www.codeleading.com/article/7346746014/

  • 相关阅读:
    在线制作流程图
    表格设计有感
    mvp需要加上单利模式
    2015.7.17( NOI2015 day1 )
    BZOJ 2073: [POI2004]PRZ( 状压dp )
    1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
    BZOJ 1072: [SCOI2007]排列perm( )
    BZOJ 1475: 方格取数( 网络流 )
    BZOJ 3524: [Poi2014]Couriers( 主席树 )
    BZOJ 1087: [SCOI2005]互不侵犯King( 状压dp )
  • 原文地址:https://www.cnblogs.com/Ao-min/p/13523559.html
Copyright © 2020-2023  润新知