Keycha事件未使用Sencha的Architect代码触发

时间:2013-07-12 13:39:53

标签: extjs extjs4 sencha-architect

我正在试图找出为什么我的keyup事件没有被触发。我创建了一个UpperCaseTextField(在Sencha Architect内部)并以一种形式(链接)使用它。

实例:http://jsfiddle.net/wyQUb/

UpperCaseTextField

Ext.define('MyApp.view.UpperCaseTextField', {
    extend: 'Ext.form.field.Text',
    alias: 'widget.uppercasetextfield',

    initComponent: function () {
        var me = this;

        Ext.applyIf(me, {
            listeners: {
                keyup: {
                    fn: me.onTextfieldKeyup,
                    scope: me
                }
            }
        });

        me.callParent(arguments);
    },

    onTextfieldKeyup: function (textfield, e, eOpts) {
        var me = this;
        alert('keyup');
        var upper = me.getValue().toUpperCase();
        me.setValue(upper);
    }

});

我是否遗漏了某些内容或listeners配置应该有效?

1 个答案:

答案 0 :(得分:6)

您需要为文本字段启用关键事件:

enableKeyEvents: true

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.Text-cfg-enableKeyEvents