EXTJS 5.1上的月份字段

JkS*_*Suf 5 field extjs monthcalendar extjs5

我从另一个堆栈溢出帖子(感谢igor)得到了这个很棒的小提琴https://fiddle.sencha.com/#fiddle/h5i.但我有一个问题:如果我选择extjs版本5.1,这是我在我的应用程序中使用的版本,代码不起作用.问题是,当我点击一个月或一年时,日历就会关闭(您可以通过将版本设置为5.1并再次运行小提琴来尝试该行为).我试图自定义部分代码,但没有改变:s.

任何人都有任何想法为什么这不适用于extjs 5.1,或者我怎么能解决这个问题?

提前致谢 :) !

小智 6

某种程度上Chrome的行为是不同的.请尝试以下方法:

createPicker: function () {
    var me = this,
        format = Ext.String.format,
        pickerConfig;

    pickerConfig = {
        pickerField: me,
        ownerCmp: me,
        renderTo: document.body,
        floating: true,
        hidden: true,
        focusOnShow: true,
        minDate: me.minValue,
        maxDate: me.maxValue,
        disabledDatesRE: me.disabledDatesRE,
        disabledDatesText: me.disabledDatesText,
        disabledDays: me.disabledDays,
        disabledDaysText: me.disabledDaysText,
        format: me.format,
        showToday: me.showToday,
        startDay: me.startDay,
        minText: format(me.minText, me.formatDate(me.minValue)),
        maxText: format(me.maxText, me.formatDate(me.maxValue)),
        listeners: {
            select: { scope: me, fn: me.onSelect },
            monthdblclick: { scope: me, fn: me.onOKClick },
            yeardblclick: { scope: me, fn: me.onOKClick },
            OkClick: { scope: me, fn: me.onOKClick },
            CancelClick: { scope: me, fn: me.onCancelClick }
        },
        keyNavConfig: {
            esc: function () {
                me.collapse();
            }
        }
    };

    if (Ext.isChrome) {
        me.originalCollapse = me.collapse;
        pickerConfig.listeners.boxready = {
            fn: function () {
                this.picker.el.on({
                    mousedown: function () {
                        this.collapse = Ext.emptyFn;
                    },
                    mouseup: function () {
                        this.collapse = this.originalCollapse;
                    },
                    scope: this
                });
            },
            scope: me,
            single: true
        }
    }

    return Ext.create('Ext.picker.Month', pickerConfig);
}
Run Code Online (Sandbox Code Playgroud)