2

我的问题是,在“内部”数字字段中按回车键时我无法捕捉到任何事件。

我从监听动作事件开始,然后尝试捕捉 keyup 事件并检查键码。这些都不适合我:

xtype: 'numberfield',
cls: 'bordered_input',
label: '',
name: 'value',
itemId: 'stavif_value',
listeners: {
    keyup: function(numberfield, e){
        if(e.event.keyCode == 13) 
            console.log('KEYUP CATCHED');
    },
    action: function(){
        console.log('ACTION CATCHED');
    }  
}

然后我将 numberfield 移动到 form.Panel 中并尝试捕获 beforesubmit 事件:

var form = Ext.create('Ext.form.Panel', {
    submitOnAction: true, 
    items: [
        {
            xtype: 'fieldset',
            items: [                  
                {
                    xtype: 'numberfield',
                    cls: 'bordered_input',
                    label: '',
                    name: 'hodnota',
                    itemId: 'stavif_hodnota'
                }                                
            ],
            listeners: {
                beforesubmit: function(form, values, options) {
                    console.log('BEFORESUBMIT inside FIELDSET');
                }
           }
       }
    ],
    listeners: {
        beforesubmit: function(form, values, options) {
            console.log('BEFORESUBMIT inside form.Panel');
        }
     }
});

我也把'listeners'放到了fieldset(最初我没有fieldset),只是为了确保我没有遗漏任何东西。然而我没有再次成功。

让我感到困惑的是,当我使用 textfield 而不是 numberfield 时,我能够捕捉到 keyup 和动作事件(虽然不知道 beforesubmit,但没有尝试过)。

4

1 回答 1

0

There is a special key event listener for numberfield. Try

listeners: {
                specialkey: function(field, e){
                    if (e.getKey() == e.ENTER) {
                        console.log('Enter pressed');
                    }
                }
            }
于 2014-08-30T04:46:59.230 回答