easyui datebox 只选择月份的方法

效果如下图:

代码如下:

<html >
<head>
    <meta charset="utf-8">
    <title>ECharts · Example</title>
    <link href="../easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />
    <link href="../easyui/themes/icon.css" rel="stylesheet" type="text/css" />
    <script src="../js/jquery.min.js" type="text/javascript"></script>
    <script src="../easyui/jquery.easyui.min.js" type="text/javascript"></script>
    <script src="../easyui/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>

</head>

<body>
<input id="date1"/>
<input id="date2" style="display: none"/>
<button id="kk" style="width: 120px;height: 30px;">点击切换成月份</button>

<script>

    $(function () {
        dateboxDate(‘date1‘);
        $("#kk").on("click",function(){
            $(‘#date1‘).hide();
            $(‘#date1‘).next().hide();
            dateboxMonth(‘date2‘);
        });
    });

    function dateboxDate(id){
        var bb = $(‘#‘ + id);
        bb.datebox({
            value : ‘2017/04/23‘,
            editable : false
        });
    }

    dateboxMonth = function (id) {
        var db = $(‘#‘ + id);
        db.datebox({
            onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层
                span.trigger(‘click‘); //触发click事件弹出月份层
                if (!tds) setTimeout(function () {//延时触发获取月份对象,因为上面的事件触发和对象生成有时间间隔
                    tds = p.find(‘div.calendar-menu-month-inner td‘);
                    tds.click(function (e) {
                        e.stopPropagation(); //禁止冒泡执行easyui给月份绑定的事件
                        var year = /\d{4}/.exec(span.html())[0]//得到年份
                                , month = parseInt($(this).attr(‘abbr‘), 10); //月份,这里不需要+1
                        db.datebox(‘hidePanel‘)//隐藏日期对象
                                .datebox(‘setValue‘, year + ‘-‘ + month); //设置日期的值
                    });
                }, 0);
                yearIpt.unbind();//解绑年份输入框中任何事件
            },
            parser: function (s) {
                if (!s) return new Date();
                var arr = s.split(‘-‘);
                return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);
            },
            formatter: function (d) { return d.getFullYear() + ‘-‘ + (d.getMonth() + 1);/*getMonth返回的是0开始的,忘记了。。已修正*/ }
        });
        var p = db.datebox(‘panel‘), //日期选择对象
                tds = false, //日期选择对象中月份
                aToday = p.find(‘a.datebox-current‘),
                yearIpt = p.find(‘input.calendar-menu-year‘),//年份输入框
        //显示月份层的触发控件
                span = aToday.length ? p.find(‘div.calendar-title span‘) ://1.3.x版本
                        p.find(‘span.calendar-text‘); //1.4.x版本
        p.find(‘div.calendar-header‘).hide();
        if (aToday.length) {//1.3.x版本,取消Today按钮的click事件,重新绑定新事件设置日期框为今天,防止弹出日期选择面板

            aToday.unbind(‘click‘).click(function () {
                var now=new Date();
                db.datebox(‘hidePanel‘).datebox(‘setValue‘, now.getFullYear() + ‘-‘ + (now.getMonth() + 1));
            });
        }
    }
</script>
</body>
</html>
时间: 2024-10-09 09:58:22

easyui datebox 只选择月份的方法的相关文章

easyui datebox 只选择年月

如题,要网上还是找了好大一阵才打到一个前辈的解决方法,但还有一点bug,固在这儿贴出来,希望能帮到更多的小伙伴! $('#dlgReleaseTime').datebox({ onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); //触发click事件弹出月份层 if (!tds) setTimeout(function() { //延时触发获取月份对象,因为上面的事件触发和对象生成

easyUI日期控件只选择月份和日期

最近的工作中,有块业务要求只选择月份和日期,翻遍了easyUI的API和网络资料也没找到方法,网上几乎都是只要年份或者年月,没有我需要的场景.遂自己琢磨了下,最终成功只选择月份和日期,过滤掉了年份. 我想要的是这样的↓ 我修改后的效果是这样的↓ 现分享代码如下: 1 $("#"+param).datebox({ 2 showSeconds: false, 3 required:true, 4 onShowPanel: function () {// 隐藏年的选择 5 $(".

EasyUI Combotree只选择叶子节点

EasyUI Combotree的方法拓展自Combo和Tree.而Tree有一个onBeforSelect事件来帮助我们实现只选择叶子节点的功能. Tree事件需要 'node' 参数,它包括下列属性: id:绑定到节点的标识值. text:要显示的文本. iconCls:用来显示图标的 css class. checked:节点是否被选中. state:节点状态,'open' 或 'closed'. attributes:绑定到节点的自定义属性. target:目标的 DOM 对象. onB

easyui datebox 只显示年月

在网上看了好多的js源码 点击12月份都会变成2017-0 这样的 调试后发现了问题,在此发修改后的方法 //只显示年月 function convertDatebox(domId) { $("#" + domId).datebox({ onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); //触发click事件弹出月份层 if (!tds) setTimeout(func

easyui datebox只显示年月隐藏日期的实现

工作中两次遇到需要实现只实现年月的时间控件效果,特地把网上查到的实现方法记录下来,以备再次需要时用到.上代码 var dateobj=function(obj){ var need_obj={ onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); //触发click事件弹出月份层 if (!tds) setTimeout(function () {//延时触发获取月份对象,因为上面的

bootstrap的datetimepicker只选择月份

本文转载自:http://blog.csdn.net/feng1603/article/details/41869523 直接上代码: //选择年月日的 startView: 2, minView: 2, format: 'yyyymmdd', $('#datetimepicker').datetimepicker({ format: 'yyyymmdd', weekStart: 1, autoclose: true, startView: 2, minView: 2, forceParse:

easyui datebox 扩展 只显示年月

一个日期控件只显示年月是很正常的事情.可是easyui datebox 不支持这种格式的,要么就是截取字符串,不可取,自己没有写过类似的扩展,但是也算是实现功能了,先来张图吧 本人水平有限写不出高深的东西,代码大家都能看懂,但是还是贡献出来,让大家提提意见共同进步吧 $.extend($.fn.combobox.methods, { yearandmonth: function (jq) { return jq.each(function () { var obj = $(this).combo

Easyui datebox单击文本框显示日期选择 eayui版本1.5.4.1

Easyui默认是点击文本框后面的图标显示日期,体验很不好,所以我想单击文本框就显示日期选择框,网上很多版本是1.3,1.4的,于是自己就比葫芦画瓢改了一个1.5.4.1的版本. 我参考了网上这个帖子,基本一样.只是1.5.4.1增加了一些代码,所以行号有些差异,并且编码后的数字有些变化.Easyui datebox单击文本框显示日期选择 eayui版本1.5.3 修改jQuery.easyui.min.js文件,在文件中查找:tb._size(opts, 保存,成功. 原文地址:https:/

Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

(function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, showType:'show' }); }; /** * 获取时间区间 * @param type 1:当年的一月一日到现在:type 2:获取当月的第一天和最后一天 * return {startTime:xxxx,endTime:xxxx} */ $.getTimeInterval = functi