easyui datebox设置日期范围,其他不可选
easyui datebox没有同my97日历控件配置限制可以选择日期的范围,easyui要限制日期选择,需要自己扩展功能。
easyui datebox参考其他控件值设置范围可以参考此文:easyui datebox范围设置日期对比参考
easyui datebox设置日期范围,其他不可选源代码如下,easyui测试版本为1.3.3,1.4,1.4.1,1.4.3,1.4.4,其他版本没效果可以最后留言,效果如下
<title>easyui datebox设置日期范围,其他不可选</title> 日期1:<input class="easyui-datebox" data-options="minDate:'2017/8/3',maxDate:'2017/8/17'">(2017/8/3~2017/8/17)<br /><br /> 日期2:<input class="easyui-datebox" data-options="minDate:'2017/8/9',maxDate:'2017/8/26'">(2017/8/3~2017/8/26)<br /><br /> 日期3:<input class="easyui-datebox">(不限制范围)<br /> <style>td.disabled{cursor:not-allowed;text-decoration:line-through;background:#ccc;color:#f00}</style> <script> $(function () { //如果通过class="easyui-datebox"标记组件,setCalendarState要在dom ready中执行。 //如果非同过class标记组件,js初始化组件,则可以$('#xxxx').datebox({minDate:'',maxDate:''...其他配置..}).setCalendarState()调用即可。 //注意minDate,maxDate格式为 年-月-日 或者 年/月/日 格式及符合Date参数的字符串,其他可能报错或者无法正常限制范围 $('input.easyui-datebox').setCalendarState(); }); //power by Showbo(http://www.w3dev.cn/),keep this to fixed bug or update $.fn.setCalendarState = function () { function setCalendarTds() { var el=$(this),opt = el.datebox('options'); if (opt.minDate || opt.maxDate) { if (typeof opt.minDate == 'string') opt.minDate = new Date(opt.minDate.replace(/-/g,'/')).getTime(); if (typeof opt.maxDate == 'string') opt.maxDate = new Date(opt.maxDate.replace(/-/g, '/')).getTime(); var panel = el.datebox('panel'); var tds = panel.find('td.calendar-day'); var ok, d,td tds.each(function () { td = $(this); d = new Date(td.attr('abbr').replace(/,/g, '/')).getTime(); ok = true; if (opt.minDate && d < opt.minDate) ok = false; if (ok && opt.maxDate && d > opt.maxDate) ok = false; if (!ok) td.addClass('disabled').unbind('click').click(function (e) { e.stopPropagation() }); }); var today = panel.find('div.datebox-button a:first'); ok = true; d = new Date(); d = new Date(d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate()).getTime(); if (opt.minDate && d < opt.minDate) ok = false; if (ok && opt.maxDate && d > opt.maxDate) ok = false; if (!ok) today.parent().addClass('disabled').click(function (e) { e.stopPropagation() }); } } return this.each(function () { var el = $(this), opt = el.datebox('options'); if (!opt.minDate && !opt.maxDate) return;//不限制日期推出 var cOpts = el.datebox('calendar').calendar('options'); //easyui1.4.1新增的私有事件onNavigate,API未公布,源代码有 if (cOpts.onNavigate) cOpts.onNavigate = function () { setCalendarTds.call(el) } else {//easyui 1.4-需要直接操作dom对象,懒得改源代码了 var panel = el.datebox('panel'); //触发点击事件显示年月层,要不初始化不显示的,无法给月份绑定点击事件 panel.datebox('panel').find('div.calendar-title span').trigger('click'); panel.find('div.calendar-menu').hide();//隐藏年月层,要不1.3.x版本会显示,有重影 //给年月层的月份,切换月份和年份的前后按钮绑定一个新click事件,用于日期检查 panel.find('td.calendar-menu-month').add(panel.find('div.calendar-nav')).click(function () { setCalendarTds.call(el) }) } }); } </script>
加支付宝好友偷能量挖...
原创文章,转载请注明出处:easyui datebox设置日期范围,其他不可选