dwz监听日期变化,dwz日期控件onchange不起作用,dwz框架时间控件不支持onchange事件

<input type="text" class="time hotelDepartrue" datefmt="yyyy-MM-dd" οnchange="checkDate('endDate')"/>
1:找到 dwz.datepicker.js文件
2:在下面的文件中,把红色的部分添加进去
/**
 * reference dwz.util.date.js
 * @author  ZhangHuihua@msn.com
 * 
 */
(function($){
    $.setRegional("datepicker", {
        dayNames:['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        monthNames:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    });

    $.fn.datepicker = function(opts){
        var setting = {
            box$:"#calendar",
            year$:"#calendar [name=year]", month$:"#calendar [name=month]",
            tmInputs$:"#calendar .time :text", hour$:"#calendar .time .hh", minute$:"#calendar .time .mm", second$:"#calendar .time .ss",
            tmBox$:"#calendar .tm", tmUp$:"#calendar .time .up", tmDown$:"#calendar .time .down",
            close$:"#calendar .close", calIcon$:"a.inputDateButton",
            main$:"#calendar .main", days$:"#calendar .days", dayNames$:"#calendar .dayNames",
            clearBut$:"#calendar .clearBut", okBut$:"#calendar .okBut"
        };

        function changeTmMenu(sltClass){
            var $tm = $(setting.tmBox$);
            $tm.removeClass("hh").removeClass("mm").removeClass("ss");
            if (sltClass) {
                $tm.addClass(sltClass);
                $(setting.tmInputs$).removeClass("slt").filter("." + sltClass).addClass("slt");
            }
        }
        function clickTmMenu($input, type){
            $(setting.tmBox$).find("."+type+" li").each(function(){
                var $li = $(this);
                $li.click(function(){
                    $input.val($li.text());
                });
            });
        }
        function keydownInt(e){
            if (!((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode == DWZ.keyCode.DELETE || e.keyCode == DWZ.keyCode.BACKSPACE))) { return false; }
        }
        function changeTm($input, type){
            var ivalue = parseInt($input.val()), istart = parseInt($input.attr("start")) || 0, iend = parseInt($input.attr("end"));
            var istep = parseInt($input.attr('step') || 1);
            if (type == 1) {
                if (ivalue <= iend-istep){$input.val(ivalue + istep);}
            } else if (type == -1){
                if (ivalue >= istart+istep){$input.val(ivalue - istep);}
            } else if (ivalue > iend) {
                $input.val(iend);
            } else if (ivalue < istart) {
                $input.val(istart);
            }
        }

        return this.each(function(){
            var $this = $(this);
            var dp = new Datepicker($this.val(), opts);

            function generateCalendar(dp){
                var dw = dp.getDateWrap();
                var minDate = dp.getMinDate();
                var maxDate = dp.getMaxDate();

                var monthStart = new Date(dw.year,dw.month-1,1);
                var startDay = monthStart.getDay();
                var dayStr="";
                if (startDay > 0){
                    monthStart.setMonth(monthStart.getMonth() - 1);
                    var prevDateWrap = dp.getDateWrap(monthStart);
                    for(var t=prevDateWrap.days-startDay+1;t<=prevDateWrap.days;t++) {
                        var _date = new Date(dw.year,dw.month-2,t);
                        var _ctrClass = (_date >= minDate && _date <= maxDate) ? '' : 'disabled';
                        dayStr+='<dd class="other '+_ctrClass+'" chMonth="-1" day="' + t + '">'+t+'</dd>';
                    }
                }
                for(var t=1;t<=dw.days;t++){
                    var _date = new Date(dw.year,dw.month-1,t);
                    var _ctrClass = (_date >= minDate && _date <= maxDate) ? '' : 'disabled';
                    if(t==dw.day){
                        dayStr+='<dd class="slt '+_ctrClass+'" day="' + t + '">'+t+'</dd>';
                    }else{
                        dayStr+='<dd class="'+_ctrClass+'" day="' + t + '">'+t+'</dd>';
                    }
                }
                for(var t=1;t<=42-startDay-dw.days;t++){
                    var _date = new Date(dw.year,dw.month,t);
                    var _ctrClass = (_date >= minDate && _date <= maxDate) ? '' : 'disabled';
                    dayStr+='<dd class="other '+_ctrClass+'" chMonth="1" day="' + t + '">'+t+'</dd>';
                }

                var $days = $(setting.days$).html(dayStr).find("dd");
                $days.not('.disabled').click(function(){
                    var $day = $(this);

                    if (!dp.hasTime()) {
                        $this.val(dp.formatDate(dp.changeDay($day.attr("day"), $day.attr("chMonth"))));
                        // 添加监听日期改变(PineTree添加)
                         $this.change();
                        closeCalendar(); 
                    } else {
                        $days.removeClass("slt");
                        $day.addClass("slt");
                    }
                });

                if (!dp.hasDate()) $(setting.main$).addClass('nodate'); // 仅时间,无日期

                if (dp.hasTime()) {
                    $("#calendar .time").show();

                    var $hour = $(setting.hour$).val(dw.hour).focus(function(){
                        changeTmMenu("hh");
                    });
                    var iMinute = parseInt(dw.minute / dp.opts.mmStep) * dp.opts.mmStep;
                    var $minute = $(setting.minute$).val(iMinute).attr('step',dp.opts.mmStep).focus(function(){
                        changeTmMenu("mm");
                    });
                    var $second = $(setting.second$).val(dp.hasSecond() ? dw.second : 0).attr('step',dp.opts.ssStep).focus(function(){
                        changeTmMenu("ss");
                    });

                    $hour.add($minute).add($second).click(function(){return false});

                    clickTmMenu($hour,"hh");
                    clickTmMenu($minute,"mm");
                    clickTmMenu($second,"ss");
                    $(setting.box$).click(function(){
                        changeTmMenu();
                    });

                    var $inputs = $(setting.tmInputs$);
                    $inputs.keydown(keydownInt).each(function(){
                        var $input = $(this);
                        $input.keyup(function(){
                            changeTm($input, 0);
                        });
                    });
                    $(setting.tmUp$).click(function(){
                        $inputs.filter(".slt").each(function(){
                            changeTm($(this), 1);
                        });
                    });
                    $(setting.tmDown$).click(function(){
                        $inputs.filter(".slt").each(function(){
                            changeTm($(this), -1);
                        });
                    });

                    if (!dp.hasHour()) $hour.attr("disabled",true);
                    if (!dp.hasMinute()) $minute.attr("disabled",true);
                    if (!dp.hasSecond()) $second.attr("disabled",true);
                }

            }

            function closeCalendar() {
                $(setting.box$).remove();
                $(document).unbind("click", closeCalendar);
            }

            $this.click(function(event){
                closeCalendar();
                var dp = new Datepicker($this.val(), opts);
                var offset = $this.offset();
                var iTop = offset.top+this.offsetHeight;
                $(DWZ.frag['calendarFrag']).appendTo("body").css({
                    left:offset.left+'px',
                    top:iTop+'px'
                }).show().click(function(event){
                    event.stopPropagation();
                });

                ($.fn.bgiframe && $(setting.box$).bgiframe());

                var dayNames = "";
                $.each($.regional.datepicker.dayNames, function(i,v){
                    dayNames += "<dt>" + v + "</dt>"
                });
                $(setting.dayNames$).html(dayNames);

                var dw = dp.getDateWrap();
                var $year = $(setting.year$);
                var yearstart = dp.getMinDate().getFullYear();
                var yearend = dp.getMaxDate().getFullYear();
                for(y=yearstart; y<=yearend; y++){
                    $year.append('<option value="'+ y +'"'+ (dw.year==y ? 'selected="selected"' : '') +'>'+ y +'</option>');
                }
                var $month = $(setting.month$);
                $.each($.regional.datepicker.monthNames, function(i,v){
                    var m = i+1;
                    $month.append('<option value="'+ m +'"'+ (dw.month==m ? 'selected="selected"' : '') +'>'+ v +'</option>');
                });

                // generate calendar
                generateCalendar(dp);
                $year.add($month).change(function(){
                    dp.changeDate($year.val(), $month.val());
                    generateCalendar(dp);
                });

                // fix top
                var iBoxH = $(setting.box$).outerHeight(true);
                if (iTop > iBoxH && iTop > $(window).height()-iBoxH) {
                    $(setting.box$).css("top", offset.top - iBoxH);
                }

                $(setting.close$).click(function(){
                    closeCalendar();
                });
                $(setting.clearBut$).click(function(){
                    $this.val("");
                    closeCalendar();
                    // 添加日期改变监听(PineTree添加)
                     $this.change();
                });
                $(setting.okBut$).click(function(){
                    var $dd = $(setting.days$).find("dd.slt");

                    if ($dd.hasClass("disabled")) return false;

                    var date = dp.changeDay($dd.attr("day"), $dd.attr("chMonth"));

                    if (dp.hasTime()) {
                         date.setHours(parseInt($(setting.hour$).val()));
                        date.setMinutes(parseInt($(setting.minute$).val()));
                        date.setSeconds(parseInt($(setting.second$).val()));
                    }

                    $this.val(dp.formatDate(date));
                    closeCalendar();
                    // 添加日期改变监听(PineTree添加)
                     $this.change();
                });
                $(document).bind("click", closeCalendar);
                return false;
            });

            $this.parent().find(setting.calIcon$).click(function(){
                $this.trigger("click");
                return false;
            });
        });

    }

    var Datepicker = function(sDate, opts) {
        this.opts = $.extend({
            pattern:'yyyy-MM-dd',
            minDate:"1900-01-01",
            maxDate:"2099-12-31",
            mmStep:1,
            ssStep:1
        }, opts);

        //动态minDate、maxDate
        var now = new Date();
        this.opts.minDate = now.formatDateTm(this.opts.minDate);
        this.opts.maxDate = now.formatDateTm(this.opts.maxDate);

        this.sDate = sDate.trim();
    }

    $.extend(Datepicker.prototype, {
        get: function(name) {
            return this.opts[name];
        },
        _getDays: function (y,m){//获取某年某月的天数

            return m==2?(y%4||!(y%100)&&y%400?28:29):(/4|6|9|11/.test(m)?30:31);
        },

        _minMaxDate: function(sDate){
            var _count = sDate.split('-').length -1;
            var _format = 'y-M-d';
            if (_count == 1) _format = 'y-M';
            else if (_count == 0) _format = 'y';

            return sDate.parseDate(_format);
        },
        getMinDate: function(){
            return this._minMaxDate(this.opts.minDate);
        },
        getMaxDate: function(){
            var _sDate = this.opts.maxDate;
            var _count = _sDate.split('-').length -1;
            var _date = this._minMaxDate(_sDate);

            if (_count < 2) { //format:y-M、y

                var _day = this._getDays(_date.getFullYear(), _date.getMonth()+1);
                _date.setDate(_day);
                if (_count == 0) {//format:y

                    _date.setMonth(11);
                }
            }

            return _date;
        },
        getDateWrap: function(date){ //得到年,月,日

            if (!date) date = this.parseDate(this.sDate) || new Date();
            var y = date.getFullYear();
            var m = date.getMonth()+1;
            var days = this._getDays(y,m);
            return {
                year:y, month:m, day:date.getDate(),
                hour:date.getHours(),minute:date.getMinutes(),second:date.getSeconds(),
                days: days, date:date
            }
        },
        /**
         * @param {year:2010, month:05, day:24}
         */
        changeDate: function(y, m, d){
            var date = new Date(y, m - 1, d || 1);
            this.sDate = this.formatDate(date);
            return date;
        },
        changeDay: function(day, chMonth){
            if (!chMonth) chMonth = 0;
            var dw = this.getDateWrap();
            return this.changeDate(dw.year, dw.month+parseInt(chMonth), day);
        },
        parseDate: function(sDate){
            if (!sDate) return null;
            return sDate.parseDate(this.opts.pattern);
        },
        formatDate: function(date){
            return date.formatDate(this.opts.pattern);
        },
        hasHour: function() {
            return this.opts.pattern.indexOf("H") != -1;
        },
        hasMinute: function() {
            return this.opts.pattern.indexOf("m") != -1;
        },
        hasSecond: function() {
            return this.opts.pattern.indexOf("s") != -1;
        },
        hasTime: function() {
            return this.hasHour() || this.hasMinute() || this.hasSecond();
        },
        hasDate: function() {
            var _dateKeys = ['y','M','d','E'];
            for (var i=0; i<_dateKeys.length; i++){
                if (this.opts.pattern.indexOf(_dateKeys[i]) != -1) return true;
            }

            return false;
        }
    });
})(jQuery);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题目:人力资源管理系统 摘要 随着越来越多的公司的创办,膨胀的信息量以及越来越快的工作节奏,人力资源管理 系统在强调管理,强调信息的现实社会中已经变得越来越普及。公司里面工作人员的个 人信息,工作信息以及考勤信息的管理变得尤为重要。在科技发展的同时计算机的发展 也是飞快的,可以说计算机已经成为了人们生活中不可或缺的一部分。而使用计算机对 人事信息进行管理已经是当今社会的趋势。 人力资源管理系统出现于20世纪90年代末,这一代HRMS的数据库将几乎所有与人力资 源相关的数据都进行了收集与管理,更有强力报表生成工具、数据分析工具和信息共享 的实现。 企业采用人力资源管理系统最主要的原因是,期望借由人力资源管理系统,将人力资 源运用到最佳经济效益,也由于知识经济的来临,所谓人力资本的观念已经形成,人力 资本的重要性更不下于土地、厂房、设备与资金等,甚至超越,除此之外,人是知识的 载体,为了有效运用知识,将知识发挥最大的效用,便需要妥善的人力资源管理,才能 够发挥人力资源的最佳效用。 关键词 : 人力资源管理系统,Java, B/S模式, Struts2, Spring, Mybatis MySQL, DWZ框架 目录 目录 III 第一章 绪论 1 1.1 人力资源管理系统开发背景 1 1.2人力资源管理系统开发意义 1 1.3 人力资源管理系统可行性分析 1 1.3.1 可行性研究 1 1.3.2 技术可行性 2 1.3.3 经济可行性 2 1.3.4 操作可行性 2 1.3.5 法律可行性 2 第二章 相关技术概述 3 2.1 JAVA 结构简介 3 2.2 B/S结构简介 3 2.3 Struts2简介 3 2.4 Spring简介 4 2.5 Mybatis 简介 4 2.6 MySQL数据库简介 4 2.7 DWZ框架简介 5 第三章 需求分析 6 3.1 本系统使用者分析 6 3.2 本系统使用者图形展示 6 3.2.1 管理员权限 6 3.2.2 员工权限 7 3.3 本系统信息处理流程 7 3.3.1 请假记录处理流程 7 3.3.2 员工管理处理流程 7 3.3.3 部门管理处理流程 8 3.3.4 职位管理处理流程 8 第四章 数据库设计 9 4.1 数据库详细设计 9 第五章 系统设计 13 5.1 系统功能模块概要设计 13 5.2 系统功能模块详细设计(功能的实现) 15 5.2.1 进入系统登录界面 15 5.2.2 执行登录操作 16 5.2.3 执行退出操作 17 5.2.4 员工管理列表 18 5.2.5 增加员工信息 19 5.2.6 修改员工信息 23 5.2.7 部门管理列表 26 5.2.8 增加部门信息 27 5.2.9 修改部门信息 28 5.2.10 职位管理列表 30 5.2.11 增加职位信息 31 5.2.12 修改职位信息 32 5.2.13 请假管理列表 34 5.2.14 添加请假记录 35 5.2.15 员工请假记录 40 第六章 其它介绍 41 6.1 项目包说明 41 6.2 兼容性介绍 41 第七章 总结 43 参考文献 44 致 谢 45 第一章 绪论 1.1 人力资源管理系统开发背景 随着计算机日益普及和网络技术的快速发展,数据库的应用范围越来越广和功能越来越 强,开发信息管理系统在现代企业运行模式中显得尤为重要。在强调管理,强调信息的现 代社会中它也变得越来越普及。完善的信息管理系统能使企业在处理很多问题上变得更 快捷、更高效,因此在软件市场上也出现了很多旨在于人力资源管理方面的产品。 本系统可以极大的提高企业人力资源管理的效率,它具有检索迅速、查找方便、可靠 性高、存储量大、保密性好、寿命长和成本低等优点。 1.2人力资源管理系统开发意义 人力资源管理是任何企事业单位都需要进行的一项工作,因此,开发制作人力资源管理 系统具有较大的社会现实意义,同时人力资源管理系统是一切应用系统的典范,它具有 一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,具有典范的数据库系 统的特性。人力资源管理系统主要用于企业内部员工的档案、考勤,便于公司领导掌握 人员的动向,及时调整人才的分配,同时也减少了手工操作带来的一些繁琐与不便,使 员工情况的记录和统计变得十分简单。这些优点可以极大的提高企业对人力资源管理的 效率。因此,人力资源管理系统是企事业信息化、智能化、科学化和正规化不可缺少的 管理软件。 本系统开发的目的一方面从提高人力资源管理工作的效率出发,摆脱过去由人用纸和 笔进行的费时费力的繁重工作,即利用成熟的计算机系统来实现管理工作的自动化。本 系统根据企业管理的一些实际情况而编制的一套自动化的人事信息管理系统。 通过对人力资源管理所做工作的详细调查,搜集了大量的资

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值