如果想要我的 nubmerfield 取“,”并将其转换为“.”在关键。 Numberfield 不允许在其中输入“,”。我想处理“specialkey”并添加“。”手动。但是“,”不是特殊键。如何在那里添加它?

最佳答案

如果要将“,”转换为“.”在 key up 时,为什么要使用 '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 ();

关于javascript - ExtJS:: 如何将特定的 "specialkey event"逗号添加到数字字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11541710/

10-12 06:49