javascript - EXTJS 5 - 日期选择器仅限年份和月份

标签 javascript extjs datepicker extjs5

我想这个问题已经被问了很多(因为我发现了一些关于它的主题),但我仍然不知道如何通过只显示月份和年份来呈现日期选择器。 我想我可以做不同的事情:

  • 创建我自己的 cuctom 组件(但我认为我对 Extjs 的了解还不足以创建一个显示月份和年份的组件,并且在单击时呈现年份和月份选择器。
  • 使用在 google 上找到的一些代码来创建插件(但我不知道如何在 extjs 中使用插件 ^^")。
  • 使用第三个库年月选择器添加到我的 extjs 应用程序中。

你们能指导我选择什么,并给我任何可以引用的链接吗?

提前致谢!

最佳答案

Sencha 没有这个组件,但是像这样的东西我们得到了

Ext.define('Ext.form.field.Month', {
    extend: 'Ext.form.field.Date',
    alias: 'widget.monthfield',
    requires: ['Ext.picker.Month'],
    alternateClassName: ['Ext.form.MonthField', 'Ext.form.Month'],
    selectMonth: null,
    createPicker: function() {
        var me = this,
            format = Ext.String.format;
        return Ext.create('Ext.picker.Month', {
            pickerField: me,
            ownerCt: me.ownerCt,
            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();
                }
            }
        });
    },
    onCancelClick: function() {
        var me = this;
        me.selectMonth = null;
        me.collapse();
    },
    onOKClick: function() {
        var me = this;
        if (me.selectMonth) {
            me.setValue(me.selectMonth);
            me.fireEvent('select', me, me.selectMonth);
        }
        me.collapse();
    },
    onSelect: function(m, d) {
        var me = this;
        me.selectMonth = new Date((d[0] + 1) + '/1/' + d[1]);
    }
});

...

Ext.create('Ext.form.field.Month', {
    format: 'F, Y',
    renderTo: Ext.getBody()
});

Fiddle example

关于javascript - EXTJS 5 - 日期选择器仅限年份和月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167452/

相关文章:

javascript - 阻止用户离开网页,提交表单时除​​外

javascript - 如何从具有跨度的 Div 中获取内容也有一些内容?

Extjs - 强制面板/网格为 100% 高度

javascript - 如何在 ExtJS 中禁用文本字段的 inputEl?

javascript - 如何更改 Bootstrap 日期选择器月 View 以显示季度

javascript - 如何确保 NodeJS 中加载了模块

javascript - 从现有的 Backbone.js 创建一个新集合

javascript - 带有 Squash Javascript 混淆器的 ExtJS

java - 如何将 "todate picker"选定日期设置为 "from datepicker"日期的最大日期

javascript - 禁用 html datepicker jquery 中的特定日期