3

私のnubmerfieldにしたい場合は、「、」を取り、「。」に変換します。キーアップ時に。Numberfieldでは、「、」を入力できません。そして、「specialkey」を処理して「。」を追加したい。手動で。しかし、「、」は特別なキーではありません。そこに追加する方法は?

4

2 に答える 2

1

「,」を「.」に変換したい場合 キーアップ時に、なぜ「specialkey」イベントで処理したいのですか? 「keyup」イベントを使用しないのはなぜですか?

次に例を示します。

Ext.create ('Ext.window.Window', {
    renderTo: Ext.getBody () ,
    width: 300 ,
    height: 150 ,
    title: 'It works!' ,
    items: [{
        xtype: 'numberfield' ,
        enableKeyEvents: true ,
        fieldLabel: 'Age' ,
        listeners: {
            keyup: function (nf, evt) {
                // 188 is ','
                if (evt.getKey () == 188) {
                    nf.setRawValue (nf.getRawValue () + '.');
                }
            }
        }
    }]
}).show ();

それ以外の場合は、disableKeyFilterプロパティを使用して、ユーザーが .&*% などの特殊文字を挿入できるようにし、「,」を「.」に置き換える方法を見つけることができます。

ちなみに、特別なキーイベントで「,」を処理したい場合は、次のトリックがあります。

Ext.create ('Ext.window.Window', {
    renderTo: Ext.getBody () ,
    width: 300 ,
    height: 150 ,
    title: 'It works!' ,
    items: [{
        xtype: 'numberfield' ,
        enableKeyEvents: true ,
        fieldLabel: 'Age' ,
        listeners: {
            keyup: function (nf, evt) {
                // 188 is ','
                if (evt.getKey () == 188) {
                    // Fire 'specialkey' up passing ','
                    nf.fireEvent ('specialkey', nf, evt);
                }
            } ,
            specialkey: function (nf, evt) {
                // Here we are!
                alert (evt.getKey ());
            }
        }
    }]
}).show ();
于 2012-09-07T23:32:05.127 に答える