extjs - Ext JS 6 现代工具包时间选择器字段?

标签 extjs extjs6-modern

在 Ext JS 6 现代工具包中是否有类似 Datetimepicker 字段的 time picker 字段?我复制了 Sencha touch 2 时间选择器字段,但它在 Ext JS 6 现代应用程序中不起作用。有什么解决办法吗?

最佳答案

这就是我想出的

Create a file in ext/modern/modern/src/field/TimePicker.js

将下面的代码粘贴到文件中

Ext.define('Ext.field.TimePicker', {
extend: 'Ext.field.Text',
alternateClassName: 'Ext.form.TimePicker',
xtype: 'timepickerfield',

requires: [
    'Ext.field.trigger.Clear'
],
setMe: function(t){
    this.val = t;
},
getMe: function(){
    return this.val;
},
initialize: function (a, b, c) {
    var me = this;
    me.getComponent().on({
        keyup: 'onKeyUp',
        input: 'onInput',
        focus: 'onFocus',
        blur: 'onBlur',
        paste: 'onPaste',
        mousedown: 'onMouseDown',
        scope: this
    });
},

listeners: {
    focus: function (a, b, c, d) {
        var me = this,
            hours = new Array(), 
            minutes = new Array(),
            seconds = new Array(),
            i=0;
        // for hours
        while(i < 24){
            var j = i;
            if(i < 10) j = '0'+''+j;
            hours.push({
                text: j,
                value: j
            });
            i++
        }

        // for minutes
        i = 0;
        while(i < 60){
            var j = i;
            if(i < 10) j = '0'+''+j;
            minutes.push({
                text: j,
                value: j
            });
            i += 5;
        }

        // for Seconds
        i = 0;
        while(i < 60){
            var j = i;
            if(i < 10) j = '0'+''+j;
            seconds.push({
                text: j,
                value: j
            });
            i += 5;
        }

        var picker = Ext.create('Ext.Picker', {
            useTitles: true,
            listeners: {
                change: function (picker, value, eOpts) {

                    me.setValue(value.hour + ':' + value.minute + ':' + value.second);
                }
            },
            align: 'center',
            slots: [{
                xtype: 'spacer'
            },{
                name: 'hour',
                title: 'Hour',
                data: hours
            }, {
                name: 'minute',
                title: 'Minute',
                data: minutes
            },{
                name: 'second',
                title: 'Second',
                data: minutes
            },{
                xtype: 'spacer'
            }]
        });

        picker.show();
    }
}

});

像其他领域一样在任何地方使用它

{
 xtype: 'timepickerfield',
 name: 'time',
 label: 'Time',
  // other field options
 },

关于extjs - Ext JS 6 现代工具包时间选择器字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342936/

相关文章:

javascript - 取消选中 radio 场

css - extjs2 中的表单面板布局问题

javascript - 如何将字符串解码为对象 EXTJS 6

javascript - ExtJS:复选框单击或键盘事件

javascript - Sencha Touch 和 Clusterize.js,向下传递触摸滚动事件

java - Spring 和 ExtJS "400 Bad Request"使用 PUT 但不使用 POST

javascript - Sencha ext.js,动态创建表单

javascript - 在渲染时隐藏检查单元 - extjs 6.5.3 modern

javascript - 如何使用ExtJS现代网格行扩展器插件?

javascript - Ext JS 6.5.2 Comobobox 和 ArrayStore 加载问题