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 相关文章推荐
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
学习JavaScript编程语言的8张思维导图分享
Mar 27 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
基于bootstrap3和jquery的分页插件
Jul 31 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
JS实现的表格行鼠标点击高亮效果代码
Nov 27 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
vue项目中添加单元测试的方法
Jul 21 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
vue实现下拉加载其实没那么复杂
Aug 13 Javascript
es6函数之箭头函数用法实例详解
Apr 25 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读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Vue3 中的数据侦测的实现
2019/10/09 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python中文乱码的解决方法
2013/11/04 Python
python监控文件或目录变化
2016/06/07 Python
Python网络编程详解
2017/10/31 Python
Python threading的使用方法解析
2019/08/28 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
详解Python yaml模块
2020/09/23 Python
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
《口技》教学反思
2014/02/21 职场文书
文明城市标语
2014/06/16 职场文书
汽车服务工程专业自荐信
2014/09/02 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
争先创优个人总结
2015/03/04 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书