layui-laydate時間日歷控件詳細示例


 

 

 layui下載地址:http://www.layui.com/

此控件可使用layui或者獨立版的layDate,兩者初始化有些不同

1.在 layui 模塊中使用layui.code

<!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"  id="laydate-startTime" placeholder="請輸入開始時間" name="startTime"/><input type="text"   id="laydate-endTime" placeholder="請輸入截止時間" name="endTime"/>
</div>
 
<script src="/static/build/layui.js"></script>
<script>
<!-- laydate示例 -->
        layui.use('laydate', function(){
            var laydate = layui.laydate;

            var startDate = laydate.render({
                elem: '#laydate-startTime',
                max: $('#laydate-endTime').val(),
                type:'datetime',
                theme: 'molv',
                trigger: 'click',
                done: function(value, date) {
                    // 結束時間大於開始時間
                    if (value !== '') {
                        endDate.config.min.year = date.year;
                        endDate.config.min.month = date.month - 1;
                        endDate.config.min.date = date.date;
                    } else {
                        endDate.config.min.year = '';
                        endDate.config.min.month = '';
                        endDate.config.min.date = '';
                    }
                }
            });

            var endDate = laydate.render({
                elem: '#laydate-endTime',
                min: $('#laydate-startTime').val(),
                type:'datetime',
                theme: 'molv',
                trigger: 'click',
                done: function(value, date) {
                    // 開始時間小於結束時間
                    if (value !== '') {
                        startDate.config.max.year = date.year;
                        startDate.config.max.month = date.month - 1;
                        startDate.config.max.date = date.date;
                    } else {
                        startDate.config.max.year = '';
                        startDate.config.max.month = '';
                        startDate.config.max.date = '';
                    }
                }
            });
        });
</script>
</body>
</html>

 

2.作為獨立組件使用layui.code

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用 layDate 獨立版</title>
</head>
<body>
 
<input type="text" id="test1">
 
<script src="laydate.js"></script>
<script>
//執行一個laydate實例
laydate.render({
elem: '#test1' //指定元素
});
</script>
</body>
</html>

詳細配置和事件觸發,如下注釋寫的很清楚了

laydate.render({

elem: '#test' //或 elem: document.getElementById('test')、elem: lay('#test') 等(類型:String/DOM,默認值:無必填項,用於綁定執行日期渲染的元素,值一般為選擇器,或DOM對象)

,type: 'year'//year-只提供年列表選擇||month-只提供年、月選擇||date-可選擇:年、月、日。type默認值,一般可不填||time-只提供時、分、秒選擇||datetime-可選擇:年、月、日、時、分、秒

,range: true //或 range: '~' 來自定義分割字符

,format: 'yyyy年MM月dd日' //可任意組合 yyyy年MM月dd日 HH時mm分ss秒===2017年08月18日 20時08分08秒,'yyyy/mm/dd'

,value: '2018-08-18' //必須遵循format參數設定的格式String,默認值:new Date()

,min: '2017-1-1'//min/max - 最小/大范圍內的日期時間值 類型:string,默認值:min: '1900-1-1'、max: '2099-12-31'

,max: '2017-12-31'

,trigger: 'click' // 自定義彈出控件的事件(類型:String,默認值:focus,如果綁定的元素非輸入框,則默認事件為:click)-采用click彈出

,show: true //默認顯示-類型:Boolean,默認值:false;;;;如果設置: true,則控件默認顯示在綁定元素的區域。通常用於外部事件調用控件

,position: 'static'//類型:String,默認值:absolute (fixed,absolute,static)

,zIndex: 99999999//層疊順序-類型:Number,默認值:66666666一般用於解決與其它元素的互相被遮掩的問題。如果 position 參數設為 static 時,該參數無效

,showBottom: false//是否顯示底部欄--類型:Boolean,默認值:true如果設置 false,將不會顯示控件的底部欄區域

,btns: ['clear', 'now', 'confirm']//類型:Array,默認值:['clear', 'now', 'confirm'](顯示清空,今天,確認)

,lang: 'en'//語言類型:String,默認值:cn--內置了兩種語言版本:cn(中文版)、en(國際版,即英文版)

,theme: 'grid'//主題-類型:String,默認值:default,theme的可選值有:default(默認簡約)、molv(墨綠背景)、#顏色值(自定義顏色背景)、grid(格子主題)

,calendar: true//是否顯示公歷節日--類型:Boolean,默認值:false

,mark: {//標注重要日子--類型:Object,默認值:無

'0-10-14': '生日'

,'0-12-31': '跨年' //每年12月31日

,'0-0-10': '工資' //每個月10號

,'2017-8-15': '' //具體日期

,'2017-8-20': '預發' //如果為空字符,則默認顯示數字+徽章

,'2017-8-21': '發布'

}

,ready: function(date){//控件在打開時觸發,回調返回一個參數

console.log(date); //得到初始的日期時間對象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}

}

,change: function(value, date, endDate){//日期時間被切換后的回調

console.log(value); //得到日期生成的值,如:2017-08-18

console.log(date); //得到日期時間對象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}

console.log(endDate); //得結束的日期時間對象,開啟范圍選擇(range: true)才會返回。對象成員同上。

}

,done: function(value, date, endDate){//控件選擇完畢后的回調---點擊日期、清空、現在、確定均會觸發。

console.log(value); //得到日期生成的值,如:2017-08-18

console.log(date); //得到日期時間對象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}

console.log(endDate); //得結束的日期時間對象,開啟范圍選擇(range: true)才會返回。對象成員同上。

}

});

------------------------------------------------------------------------------------------------------------------------------------------------分割線-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 ps:range的用法

layui.use('laydate', function(){

var laydate = layui.laydate;

//執行一個laydate實例

laydate.render({

elem: '#test1', //指定元素

range:'~',

value: '2019-04-16 ~ 2019-04-19'

});

});

 

 設置默認值時value 的值不是用數組,是要用跟input中展示的格式一樣,這樣點擊input會自動顯示默認區間范圍

range也可以寫成 range:true ,這樣分隔符默認為 ‘-’ ,也就是2019-04-16 - 2019-04-19

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM