datepicker 日期连续选择(需要改源码)

先上效果:

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>日期选择</title>
<link rel="stylesheet" href="reset-jquery-ui.min.css" />
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="jquery-ui.js"></script>
<script type="text/javascript">
//日期选择
$.datepicker.regional['zh-CN'] = {
    clearText: '清除',
    clearStatus: '清除已选日期',
    closeText: '关闭',
    closeStatus: '不改变当前选择',
    prevText: '<上月',
    prevStatus: '显示上月',
    prevBigText: '<<',
    prevBigStatus: '显示上一年',
    nextText: '下月>',
    nextStatus: '显示下月',
    nextBigText: '>>',
    nextBigStatus: '显示下一年',
    currentText: '今天',
    currentStatus: '显示本月',
    monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
    monthNamesShort: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
    monthStatus: '选择月份',
    yearStatus: '选择年份',
    weekHeader: '周',
    weekStatus: '年内周次',
    dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
    dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
    dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
    dayStatus: '设置 DD 为一周起始',
    dateStatus: '选择 m月 d日, DD',
    dateFormat: 'yy-mm-dd',
    firstDay: 1,
    initStatus: '请选择日期',
    isRTL: false
};
$.datepicker.setDefaults($.datepicker.regional['zh-CN']);

var a = 0;
var tmpdate = "";

/**
  * 实例化日期控件,并绑定回调函数,传入相应参数
  * tagId 日期控件实例化的标签id
  * ajaxMethod 回调函数
  * ajaxMethod 函数需要用到的额外参数
  **/
function datePickerById(tagId){
    $(tagId).datepicker( {
        isDataChecked:true,
        autoClose:true,
        showOtherMonths: true,
        changeYear: true,
        //showStatus: true,
        //showOn: "both",
        numberOfMonths:2,//显示几个月
        showMonthAfterYear:true,
        onSelect: function(dateText,inst) {//选择日期后执行的操作
            a++;
            inst.autoClose = true;
            if(a==1){
                inst.settings.isDataChecked = false;
                tmpdate = dateText;
            }
            if(a==2){
                a=0;
                inst.settings.isDataChecked = false;
                inst.autoClose = false;
                var date1 = new Date(tmpdate).getTime();
                var date2 = new Date(dateText).getTime();

                var arg = {time_s:date1,time_e:date2}; //ajax函数要用到的时间参数

                if(date1<date2){
                      $(tagId).val(tmpdate.replace(/-/ig,"-")+"至"+dateText.replace(/-/ig,"-"));
                  }else if(date1 == date2){
                    a = 1;
                    inst.settings.isDataChecked = false;
                    inst.autoClose = true;
                  }else{
                      $(tagId).val(dateText.replace(/-/ig,"-")+"至"+tmpdate.replace(/-/ig,"-"));
                  }
            }

        }
    });
}
</script>
</head>
<body>
时间选择:<input id="div1" style="height:30px;width:190px;"/>
<script type="text/javascript">
datePickerById('#div1');
</script>
</body>
</html>

基于jquery UI 1.11.4修改如下(在源码里面修改):

/* Hide the date picker from view.
     * @param  input  element - the input field attached to the date picker
     */
    _hideDatepicker: function(input) {
        var showAnim, duration, postProcess, onClose,
            inst = this._curInst;

        if (!inst || (input && inst !== $.data(input, "datepicker"))) {
            return;
        }
        /**
             * 2015.6.11 修改
             * author:link
             * 增加inst.autoClose控制日历面板
             */

1.11.4修改后完整源码

链接:http://pan.baidu.com/s/1bnjQycv 密码:hr19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏工作积累

Android获取QQ和微信的聊天记录,并保存到数据库

(该方法只适用于监控自己拥有的微信或者QQ ,无法监控或者盗取其他人的聊天记录。本文只写了如何获取聊天记录,服务器落地程序并不复杂,不做赘述。写的仓促,有错别字...

5.1K140
来自专栏草根专栏

使用静态基类方案让 ASP.NET Core 实现遵循 HATEOAS Restful Web API

Hypermedia As The Engine Of Application State (HATEOAS) HATEOAS(Hypermedia as t...

44150
来自专栏walterlv - 吕毅的博客

C#/.NET 中的契约

发布于 2017-12-20 15:04 更新于 2018-04...

8110
来自专栏阿炬.NET

微信分享代码

57890
来自专栏TungHsu

【干货】什么?Python3.X不能输出中文?原来是编辑器geany的锅?!

小白说我要开始学Python了,既然3.X支持中文,那就学3吧。于是安装好Python环境,下载好geany就开始写了。 先写个“Hello World”吧,作...

48360
来自专栏liuchengxu

Spark GraphX 对图进行可视化

Spark 和 GraphX 对并不提供对数据可视化的支持, 它们所关注的是数据处理. 但是, 一图胜千言, 尤其是在数据分析时. 接下来, 我们构建一个可视化...

25610
来自专栏小樱的经验随笔

CTF---隐写术入门第二题 小苹果

小苹果分值:10 来源: hanyuhang 难度:易 参与人数:2159人 Get Flag:862人 答题人数:996人 解题通过率:87% flag格...

31950
来自专栏肖蕾的博客

第七章:游戏音效Audio接口简介Sound类及使用方法Music类以及使用方法

1.LibGdx提供的音频方式,有三种,但是游戏中主要使用两种,Sound Music 2.枪声,按键声,这些短促,播放频率高的可以使用Sound实现。 3...

13820
来自专栏ytkah

如何用excel urldecode解码把url编码转为汉字?

  统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能。ytkah感觉最好用的是谷歌统计,里面有个搜索关键词及对应受访页面,这个功...

571100
来自专栏ThoughtWorks

秒懂ReactJS | TW洞见

今日洞见 文章作者/配图来自ThoughtWorks:贾朝阳。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网...

374100

扫码关注云+社区

领取腾讯云代金券