layui日期控件,多选,禁选,自定义设置

自定义layui,laydate日期控件,实现多选、禁止选效果

效果图:

在这里插入图片描述

以上图包括功能点:
1、控制周几不能选(示例图为:周六周天不可选)。
2、控制当前时间之前不能选。
3、控制可以选择多个日期(红色为选中效果)
4、单击某个日期可与后台做交互。

主要实现的几个方法:
0、初始化方法

//日历插件调用方法
        function loding_date(new_date, data) {
   
   

            laydate.render({
   
   
                elem: '#date-list'
                , type: 'date'
                , theme: 'grid'
                , max: '2099-06-16 23:59:59'
                , position: 'static'
                , range: false
                , value: new_date
                , min:getNowFormatDate()
                , isInitValue: false
                , calendar: false
                , btns: false
                , mark: data//重要json!
                , ready: function (value) {
   
   
                    disabled_date(value,$("#appointmentDate").val());
                    hide_mr(data);
                }
                , done: function (value, date) {
   
   
                    dateset(value,data);
                }
                , change: function (value, date) {
   
   
                    disabled_date(date,$("#appointmentDate").val());
                    hide_mr(data);
                }
            });
        }

1、设置不可选的星期:

/**
         *设置不可选择的星期
         *value:选中的值
         *appointmentDate星期:如1,2,3,4,5,6,7
         */
        function disabled_date(value,appointmentDate) {
   
   
            var mm = value.year + '-' + value.month + '-' + value.date;
            $('.laydate-theme-grid table tbody').find('[lay-ymd="' + mm + '"]').removeClass('layui-this');

            if(appointmentDate!=null && appointmentDate!=''){
   
   
                var dates = appointmentDate.split(",");
                for(var i=0;i<dates.length;i++){
   
   
                    if(dates[i]=="7"){
   
   
                        dates[i] = 0;
                    }
                    $("table>tbody>tr").find("td:eq("+dates[i]+")").addClass('ng-laydate-disabled');
                }
            }

        }

2、选中效果样式JS:

 /**
         *设置选中
         *
         */
        function hide_mr(markJson) {
   
   
            // keys = [];
            if(markJson!=null){
   
   
                for(var key in markJson){
   
   
                    var dates = key.split("-");
                    dates[1] = dates[1] * 1;
                    var mm = dates[0] + '-' + dates[1] + '-' + dates[2];
                    $('.laydate-theme-grid table tbody').find(<
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值