jQuery插件datepicker 日期连续选择


Posted in Javascript onJune 12, 2015

先上效果:

jQuery插件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控制日历面板
       */
// -----------------------------------------------------------------------------------------
 if (this._datepickerShowing||!inst.autoClose) { showAnim = this._get(inst, "showAnim"); duration = this._get(inst, "duration"); postProcess = function() { $.datepicker._tidyDialog(inst); }; // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed if(inst.autoClose===true){ // 这里不隐藏 }else{ if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); } else { inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); } }
// -----------------------------------------------------------------------------------------
if (!showAnim) { postProcess(); } this._datepickerShowing = false; onClose = this._get(inst, "onClose"); if (onClose) { onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); } this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if ($.blockUI) { $.unblockUI(); $("body").append(this.dpDiv); } } this._inDialog = false; } },

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
JS实现让网页背景图片斜向移动的方法
Feb 25 Javascript
Highcharts学习之数据列
Aug 03 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
Dec 27 Javascript
javascript删除html标签函数cIsHTML
Jan 09 Javascript
jQuery实现文档树效果
Feb 20 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
小程序云开发实战小结
Oct 25 Javascript
vue中多个倒计时实现代码实例
Mar 27 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
Element图表初始大小及窗口自适应实现
Jul 10 Javascript
vue+springboot+element+vue-resource实现文件上传教程
Oct 21 Javascript
JavaScript中的toUTCString()方法使用详解
Jun 12 #Javascript
简介JavaScript中toTimeString()方法的使用
Jun 12 #Javascript
JavaScript中string对象
Jun 12 #Javascript
JavaScript中用toString()方法返回时间为字符串
Jun 12 #Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 #Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 #Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 #Javascript
You might like
php随机显示图片的简单示例
2014/02/15 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
总经理岗位职责范本
2014/02/02 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
单独二胎证明
2015/06/24 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers