让Datetimepicker控件只能选择时间,不允许直接改的无污染解决方案。

        最近在公司修改项目的时候遇到一个需求,要让实现了Datetimepicker控件的时间输入框不能让用户改时间。当时一想把文本框直接设置为只读不就行了吗,结果一运行发现时间控件也变灰色不能选择了,尴了个尬。没办法,只能求百度或者扣脑壳了呗。

结果呢.....当然实现啦!上图:

解决方案:

1、设置输入框为只读(readonly)。

2、在初始化时间控件的时候添加 onGenerate事件去改变控件面板的不可用样式。

$(startDateTimeId).datetimepicker({
    format: 'Y-m-d H:i:s',
    minDate: 0,
    onGenerate:function(){
        $(this).find('.xdsoft_date').toggleClass('xdsoft_disabled');
        $(this).find('.xdsoft_time').toggleClass('xdsoft_disabled');
    }
});

3、当我们选择时间了,记得要把样式还原回去,不然下次打开不可选。在结尾处添加一个关闭事件处理样式还原的代码

$(startDateTimeId).datetimepicker({
    format: 'Y-m-d H:i:s',
    minDate: 0,
    onGenerate:function(){
        $(this).find('.xdsoft_date').toggleClass('xdsoft_disabled');
        $(this).find('.xdsoft_time').toggleClass('xdsoft_disabled');
    },
    onChangeDateTime: function (dp, $input) {
        startDate = $(startDateTimeId).val();
    },
    onClose: function (current_time, $input) {
        if (startDate > endDate) {
            $(startDateTimeId).val(endDate);
            startDate = endDate;
        }
        $(this).find('.xdsoft_date').toggleClass('xdsoft_disabled');
        $(this).find('.xdsoft_time').toggleClass('xdsoft_disabled');
    }
});

注意:datetimepicker的面板分为两个选项模块 date和time  

所以要改变样式的时候要找xdsoft_date和xdsoft_time两个样式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值