覆盖系统事件:textfield clear

时间:2012-10-31 10:56:45

标签: javascript sencha-touch-2

我的应用中有很多TextFields,都有同样的问题: 按下右侧的清除图标后,此文本框的焦点将丢失。

This solution有效,但效率不高,因为我必须为每个文本字段执行此操作:

                {
                    xtype: 'textfield',
                    label: 'Name',
                    onClearIconTap: function() {
                                        this.setValue('');
                                        console.log('onClearTap');
                                    }
                }

我遇到this page,覆盖了该事件,但它不起作用。这将是一个首选的解决方案:

任何帮助?

2 个答案:

答案 0 :(得分:3)

以下是如何在Sencha Touch 2的app.js启动功能中覆盖该功能:

Ext.field.Text.override({
        onClearIconTap: function() {
            this.setValue('');
            this.focus();
            console.log('global onClearTap');
        }
    });

http://jsfiddle.net/QYJpc/46/

答案 1 :(得分:0)

更好的解决方案(适用于touch 2.3.0):

Ext.define('MyApp.override.field.Text', {
    override: 'Ext.field.Text',
    // @private
    doClearIconTap: function(me, e) {
        me.setValue(this.originalValue);

        me.focus();

        //sync with the input
        me.getValue();
    }
});