bootstrap-datetimepicker时间控件添加清除按钮

本文转自:https://blog.csdn.net/gyysmile/article/details/80226993

其实这位大神写的很好了,为什么我还要在写呢,因为我想写点东西了

最近测试部提出了一个需求,说什么datetimepicker选中的时间没有办法清除,我心想你直接删除不就好了,也想破口大骂,但是讲礼貌是我一贯的作风。

那么我们要实现什么要的需求:

             

添加一个清除的按钮,点击清楚的时候输入框中的内容去掉

这个怎么修改:看网上的说添加一个clearBtn属性就行了,我真的想问问,哥们你真的看效果了吗,添加clearBtn:true是必须的

还需要我们做的事情是修改源代码:

如何修改源代码:首先我们修改比较简单的:我们在HTML文件里面可以看到使用这个时间控件需要引入一个css,两个js,css我们就不管了,我们来看看js:

	<script src="js/lib/datepicker/bootstrap-datetimepicker.min.js"></script>
	<script src="js/lib/datepicker/bootstrap-datetimepicker.zh-CN.js"></script>

我们所谓的修改源代码就是修改上面的两个js

在修改源代码之前我们看看怎么修改,当我们在初始化这个控件的时候当有todayBtn:true的时候会显示出来一个今天的按钮,我们就按照这个今天的按钮比葫芦画瓢来添加清除按钮:

首先是min.js:

第一步:

this.todayBtn=(j.todayBtn||this.element.data("date-today-btn")||false);
this.clearBtn = (j.clearBtn || this.element.data('date-clear-btn') || false);//添加部分

第二步:

this.picker.find("tfoot th.today").text(f[this.language].today).toggle(this.todayBtn!==false);
this.picker.find('tfoot th.clear').text(f[this.language].clear).toggle(this.clearBtn!==false);//添加部分

第三步:

case"today":
 var j=new Date();
j=h(j.getFullYear(),j.getMonth(),j.getDate(),j.getHours(),j.getMinutes(),j.getSeconds(),0);
if(j<this.startDate){
      j=this.startDate
}
else
{  if(j>this.endDate)
{
         j=this.endDate
 }
}
this.viewMode=this.startViewMode;this.showMode(0);this._setDate(j);this.fill();
if(this.autoclose)
{
     this.hide()
}
break;
 case 'clear':  //添加部分
    var date = new Date();  
    date = h(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(),date.getMinutes(), date.getSeconds(), 0);  
    // Respect startDate and endDate.  
    if (date < this.startDate) date = this.startDate;  
    else if (date > this.endDate) date = this.endDate;  

    this.viewMode = this.startViewMode;  
    this.showMode(0);  
    this._setDate(date);  
    this.element.val("");  
    //this._setDate(date);  
    this.fill();  
    if (this.autoclose) {  
        this.hide();  
    }  
    break;

第四步:

var dates = $.fn.datetimepicker.dates = {  
        en: {  
            days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],  
            daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],  
            daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],  
            months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],  
            monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],  
            meridiem: ["am", "pm"],  
            suffix: ["st", "nd", "rd", "th"],  
            today: "Today",  
            clear: 'Clear' // 添加部分 
        }  
    };  

第五部分:

footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'}

第六部分:修改:bootstrap-datetimepicker.zh-CN.js

;(function($){
	$.fn.datetimepicker.dates['zh-CN'] = {
			days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
			daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
			daysMin:  ["日", "一", "二", "三", "四", "五", "六", "日"],
			months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
			monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
			today: "今天",
			clear:"清空",
			suffix: [],
			meridiem: ["上午", "下午"]
	};
}(jQuery));

上面基本上就修改完成了,初始化的时候添加上clearBtn按钮:

	// 日期选择
	$(".inp-date").datetimepicker({
		minView : 'month',
		startView:2,
		format : "yyyy-mm-dd",
		language : "zh-CN",
		autoclose : true,
		escape : false,
		clearBtn: true
	});

到这个地方基本上就修改完成了,可以实现上面我的效果

希望对你有所帮助   如果存在问题可以扫下面的二维码添加我微信:欢迎一起交流学习

                                               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值