私の問題は、数値フィールドの「内部」でエンターキーを押してもイベントをキャッチできないことです。
アクションイベントをリッスンすることから始め、次にキーアップイベントをキャッチしてキーコードを確認しようとしました。それらのどれも私のために働いていません:
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');
}
}
});
「リスナー」をフィールドセットにも入れました(最初はフィールドセットなしで持っていました)、何も欠けていないことを確認するためだけです。しかし、私は再び成功しませんでした。
私が混乱しているのは、numberfield の代わりに textfield を使用すると、キーアップとアクション イベントをキャッチできることです (beforesubmit についてはわかりませんが、それを試しませんでした)。