• easyui datebox定位到某一个日期, easyui datebox直接定位到具体的日期, easyui datebox MoveTo方法使用


    easyui datebox定位到某一个日期,

    easyui datebox直接定位到具体的日期,

    easyui datebox MoveTo方法使用

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    ©Copyright 蕃薯耀 2017年5月8日

    http://www.cnblogs.com/fanshuyao/

    一、问题描述:

    当需要在打开Datebox的时候,定位到具体某一天的日期(即日历打开的月份有那个日期,不用再翻页找)

    二、解决方案

    Html代码  收藏代码
    1. <input class="f1 easyui-datebox" id="contractEndtime" name="contractEndtime" data-options="required:true,editable:false"/>  
    Js代码  收藏代码
    1. $('#contractEndtime').datebox({  
    2.     onShowPanel : function(){  
    3.         $(this).datebox('calendar').calendar("moveTo", dateAdd(dateParse(contractEndtimeCurrent), 1));  
    4.     }  
    5. });  

    Js处理日期的方法:

    Js代码  收藏代码
    1. /** 
    2.  * 日期解析,字符串转日期 
    3.  * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 
    4.  * @returns {Date} 返回对应的日期对象 
    5.  */  
    6. function dateParse(dateString){  
    7.     var SEPARATOR_BAR = "-";  
    8.     var SEPARATOR_SLASH = "/";  
    9.     var SEPARATOR_DOT = ".";  
    10.     var dateArray;  
    11.     if(dateString.indexOf(SEPARATOR_BAR) > -1){  
    12.         dateArray = dateString.split(SEPARATOR_BAR);    
    13.     }else if(dateString.indexOf(SEPARATOR_SLASH) > -1){  
    14.         dateArray = dateString.split(SEPARATOR_SLASH);  
    15.     }else{  
    16.         dateArray = dateString.split(SEPARATOR_DOT);  
    17.     }  
    18.     return new Date(dateArray[0], dateArray[1]-1, dateArray[2]);   
    19. };  
    20.   
    21. /** 
    22.  * 日期加减多少天 
    23.  * @param dateObj 日期对象 
    24.  * @param days 加减天数 
    25.  * @returns 
    26.  */  
    27. function dateAdd(dateObj, days){  
    28.     dateObj.setDate(dateObj.getDate() + days);  
    29.     return dateObj;  
    30. };  

    三、注意事项:

    1、moveTo方法是calendar对象的,datebox继承中有calendar,可以使用其里面的方法,调用方式如下:

    Js代码  收藏代码
    1. $('#contractEndtime').datebox('calendar').calendar("moveTo",  dateAdd(dateParse(contractEndtimeCurrent), 1));  

    2、onShowPanel事件是combo对象的事件。

    3、由于在项目中的datebox中设置了时间限制,不能小于某个时间,所以在定位到具体的某个日期的时候,那个日期不能是禁用的日期,因为定位到禁用的日期不起作用。

    4、顺序问题,如下图所示



     

    其中1、2的位置没有效果,3、4的位置有效果,具体原来不清楚。

    最后代码优化成这样:

    Js代码  收藏代码
    1. $(function() {  
    2.     var contractEndtimeCurrent = $("#contractEndtimeCurrent").val();  
    3.     if(!isEmpty(contractEndtime)){//限制展期日期  
    4.         var beginDate = dateParse(contractEndtimeCurrent);   
    5.         $('#contractEndtime').datebox().datebox('calendar').calendar({  
    6.             validator: function(date){  
    7.                 return beginDate < date;  
    8.             }  
    9.         });  
    10.           
    11.         $('#contractEndtime').datebox({  
    12.             onShowPanel : function(){  
    13.                 $(this).datebox('calendar').calendar("moveTo",  dateAdd(dateParse(contractEndtimeCurrent), 1));  
    14.             }  
    15.         });  
    16.     }  
    17. });  

     

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    ©Copyright 蕃薯耀 2017年5月8日

    http://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    vuex基础-Vuex是什么呢?
    (一)熟练HTML5+CSS3,每天复习一遍
    重学巩固你的Vuejs知识体系(下)
    重学巩固你的Vuejs知识体系(上)
    苹果上架的整个流程
    写给前端程序员的英文学习指南
    19期-当你在百度搜索关键字的时候,哪个网站会排在最前面?今天给大家科普一下“网站SEO”
    Linux命令入门篇(三)
    iOS面试基础知识 (二)
    iOS面试基础知识 (一)
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/6826154.html
Copyright © 2020-2023  润新知