0
点赞
收藏
分享

微信扫一扫

LayUI-04

四、LayUI内置模块

LayUI提供了很多的内置模块,提供相应的效果与功能,为了减少代码的冗余,默认是不加载所有的模块的,所以需要在使用相应模块时加载对应模块

<script src="../layui/layui.js"></script>
<script>
//一般直接写在一个js文件中
//可以一次加载多个模块
layui.use(['layer', 'form'], function(){
  var layer = layui.layer
  ,form = layui.form;
  
  layer.msg('Hello World');
});
</script>

4.1 日期选择laydate

年选择器年月选择器日期选择器时间选择器日期时间选择器 五种类型的选择方式为基本核心,并且均支持范围选择(即双控件)。

4.1.1 快速使用

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layDate快速使用</title>
  <link rel="stylesheet" href="/static/build/layui.css" media="all">
</head>
<body>
 
<div class="layui-inline"> <!-- 注意:这一层元素并不是必须的 -->
  <input type="text" class="layui-input" id="test1">
</div>
 
<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
  
  //执行一个laydate实例
  laydate.render({
    elem: '#test1' //指定元素
  });
});
</script>
</body>
</html>

4.1.2 elem 属性

类型:String/DOM,默认值:

必填项,用于绑定执行日期渲染的元素,值一般为选择器,或DOM对象

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 
  laydate.render({ 
    elem: '#test' //或 elem: document.getElementById('test')、elem: lay('#test') 等
  });
});
</script>

4.1.3 type 属性

类型:String,默认值:date

用于单独提供不同的选择器类型,可选值如下表:

type可选值

名称

用途

year

年选择器

只提供年列表选择

month

年月选择器

只提供年、月选择

date

日期选择器

可选择:年、月、日。type默认值,一般可不填

time

时间选择器

只提供时、分、秒选择

datetime

日期时间选择器

可选择:年、月、日、时、分、秒

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 
//年选择器
laydate.render({ 
  elem: '#test'
  ,type: 'year'
});
 
//年月选择器
laydate.render({ 
  elem: '#test'
  ,type: 'month'
});
 
//日期选择器
laydate.render({ 
  elem: '#test'
  //,type: 'date' //默认,可不填
});
 
//时间选择器
laydate.render({ 
  elem: '#test'
  ,type: 'time'
});
 
//日期时间选择器
laydate.render({ 
  elem: '#test'
  ,type: 'datetime'
});
    
});
</script>

4.1.4 range 属性

类型:Boolean/String,默认值:false

如果设置 true,将默认采用 “ - ” 分割。 你也可以直接设置 分割字符。五种选择器类型均支持左右面板的范围选择。

<script src="../layui/layui.js"></script>
<script>
//一般直接写在一个js文件中
//可以一次加载多个模块
layui.use(['layer', 'form'], function(){
  var layer = layui.layer
  ,form = layui.form;
  
 //年范围选择
laydate.render({ 
  elem: '#test'
  ,type: 'year'
  ,range: true //或 range: '~' 来自定义分割字符
});
 
//年月范围选择
laydate.render({ 
  elem: '#test'
  ,type: 'month'
  ,range: true //或 range: '~' 来自定义分割字符
});
 
//日期范围选择
laydate.render({ 
  elem: '#test'
  ,range: true //或 range: '~' 来自定义分割字符
});
 
//时间范围选择
laydate.render({ 
  elem: '#test'
  ,type: 'time'
  ,range: true //或 range: '~' 来自定义分割字符
});
 
//日期时间范围选择
laydate.render({ 
  elem: '#test'
  ,type: 'datetime'
  ,range: true //或 range: '~' 来自定义分割字符
});
});
</script>

4.1.5 format 属性

类型:String,默认值:yyyy-MM-dd

通过日期时间各自的格式符和长度,来设定一个你所需要的日期格式。layDate 支持的格式如下:

格式符

说明

yyyy

年份,至少四位数。如果不足四位,则前面补零

y

年份,不限制位数,即不管年份多少位,前面均不补零

MM

月份,至少两位数。如果不足两位,则前面补零。

M

月份,允许一位数。

dd

日期,至少两位数。如果不足两位,则前面补零。

d

日期,允许一位数。

HH

小时,至少两位数。如果不足两位,则前面补零。

H

小时,允许一位数。

mm

分钟,至少两位数。如果不足两位,则前面补零。

m

分钟,允许一位数。

ss

秒数,至少两位数。如果不足两位,则前面补零。

s

秒数,允许一位数。

通过上述不同的格式符组合成一段日期时间字符串,可任意排版,如下所示:

格式

示例值

yyyy-MM-dd HH:mm:ss

2017-08-18 20:08:08

yyyy年MM月dd日 HH时mm分ss秒

2017年08月18日 20时08分08秒

yyyyMMdd

20170818

dd/MM/yyyy

18/08/2017

yyyy年M月

2017年8月

M月d日

8月18日

北京时间:HH点mm分

北京时间:20点08分

yyyy年的M月某天晚上,大概H点

2017年的8月某天晚上,大概20点

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 
  //自定义日期格式
laydate.render({ 
  elem: '#test'
  ,format: 'yyyy年MM月dd日' //可任意组合
});
});
</script>

4.1.6 value 属性

类型:String,默认值:new Date()

支持传入符合format参数设定的日期格式字符,或者 new Date()

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 
//传入符合format格式的字符给初始值
laydate.render({ 
  elem: '#test'
  ,value: '2018-08-18' //必须遵循format参数设定的格式
});
 
//传入Date对象给初始值
laydate.render({ 
  elem: '#test'
  ,value: new Date(1534766888000) //参数即为:2018-08-20 20:08:08 的时间戳
});
});
</script>

4.1.7 min/max 属性

类型:string,默认值:min: '1900-1-1'max: '2099-12-31'

设定有限范围内的日期或时间值,不在范围内的将不可选中。这两个参数的赋值非常灵活,主要有以下几种情况:

  1. 如果值为字符类型,则:年月日必须用 -(中划线)分割、时分秒必须用 :(半角冒号)号分割。这里并非遵循 format 设定的格式 2.如果值为整数类型,且数字<86400000,则数字代表天数,如:min: -7,即代表最小日期在7天前,正数代表若干天后 3.如果值为整数类型,且数字 ≥ 86400000,则数字代表时间戳,如:max: 4073558400000,即代表最大日期在:公元3000年1月1日

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 //日期有效范围只限定在:2017年
laydate.render({ 
  elem: '#test'
  ,min: '2017-1-1'
  ,max: '2017-12-31'
});
 
//日期有效范围限定在:过去一周到未来一周
laydate.render({ 
  elem: '#test'
  ,min: -7 //7天前
  ,max: 7 //7天后
});
 
//日期时间有效范围的设定: 
laydate.render({ 
  elem: '#test'
  ,type: 'datetime'
  ,min: '2017-8-11 12:30:00'
  ,max: '2017-8-18 12:30:00'
});
 
//时间有效范围设定在: 上午九点半到下午五点半
laydate.render({ 
  elem: '#test'
  ,type: 'time'
  ,min: '09:30:00'
  ,max: '17:30:00'
});
});
</script>

4.1.8 showBottom 属性

类型:Boolean,默认值:true

如果设置 false,将不会显示控件的底部栏区域

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
//不显示底部栏
laydate.render({
  elem: '#test'
  ,showBottom: false
});
});
</script>

4.1.9 btns 属性

类型:Array,默认值:['clear', 'now', 'confirm']

右下角显示的按钮,会按照数组顺序排列,内置可识别的值有:clear、now、confirm

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
//只显示清空和确认
laydate.render({
  elem: '#test'
  ,btns: ['clear', 'confirm']
});
});
</script>

4.1.10 calendar 属性

类型:Boolean,默认值:false

我们内置了一些我国通用的公历重要节日,通过设置 true 来开启。国际版不会显示。

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 //允许显示公历节日
laydate.render({
  elem: '#test'
  ,calendar: true
});
});
</script>

4.1.11 mark 属性

类型:Object,默认值:

calendar 参数所代表的公历节日更多情况下是一个摆设。因此,我们还需要自定义标注重要日子,比如结婚纪念日?日程等?它分为以下两种:

标注

格式

说明

每年的日期

{'0-9-18': ''}

0 即代表每一年

每月的日期

{'0-0-15': ''}

0-0 即代表每年每月(layui 2.1.1/layDate 5.0.4 新增)

特定的日期

{'2017-8-21': '发布')

-

可同时设定多个,如:

<script src="/static/build/layui.js"></script>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
 //标注重要日子
var ins1 = laydate.render({
  elem: '#test'
  ,mark: {
    '0-10-14': '生日'
    ,'0-12-31': '跨年' //每年12月31日
    ,'0-0-10': '工资' //每个月10号
    ,'2017-8-15': '' //具体日期
    ,'2017-8-20': '预发' //如果为空字符,则默认显示数字+徽章
    ,'2017-8-21': '发布'
  }
  ,done: function(value, date){
    if(date.year === 2017 && date.month === 8 && date.date === 15){ //点击2017年8月15日,弹出提示语
      ins1.hint();
    }
  }
});
});
</script>


举报

相关推荐

0 条评论