Android sencha extjs 不支持事件焦点和 keyup

Posted

技术标签:

【中文标题】Android sencha extjs 不支持事件焦点和 keyup【英文标题】:Event focus & keyup not support on Android sencha extjs 【发布时间】:2016-12-01 06:31:29 【问题描述】:

我对 android 上的 Event focuse 和 Keyup 有意见, 我想知道为什么不支持, 当我在 Pin Key 上未打开并且键盘隐藏所有控件时, 但是这段代码在 ios 上支持,

希望你能解决这个问题

 focus: function()
                                    var Athis = this.up('confirmation1');
                                    var txtValue = this.getValue().focus() == null ? 0 : this.getValue().length;
                                    Athis.onInputValue(txtValue, this, '');
                                ,
                                keyup: function()
                                    var Athis = this.up('confirmation1');
                                    var txtValue = this.getValue() == null ? 0 : this.getValue().length;


Ext.define('Test.view.Confirmation1',

extend      : 'Ext.Panel'
,xtype      : 'confirmation1'

  ,config: 

    height: '100%',
    layout: 'vbox',
    scrollable: true,
    style: 'background-color: #E8D3B8;',

    items: [
            

                    xtype:'container',
                    layout:  type: 'hbox', pack: 'center' ,
                    cls:'textblueNumberNew',
                    flex : 1,
                    items:[

                        width: '70%',
                        minLength: 6,
                        maxLength: 6, 
                        xtype:'textcodefield',
                        cls: 'txtPassCodeTransparent',
                        itemId: 'txtPinCode',
                        reference: 'txtPinCode',
                        // id: 'pinCode',
                        clearIcon: false,
                        html: [
                            '<span class="passcodeStyleInput"><i class="fa fa-circle backgroundNone" aria-hidden="true"></i></span>',
                            '<span class="passcodeStyleInput"><i class="fa fa-circle backgroundNone" aria-hidden="true"></i></span>',
                            '<span class="passcodeStyleInput"><i class="fa fa-circle backgroundNone" aria-hidden="true"></i></span>',
                            '<span class="passcodeStyleInput"><i class="fa fa-circle backgroundNone" aria-hidden="true"></i></span>',
                            '<span class="passcodeStyleInput"><i class="fa fa-circle backgroundNone" aria-hidden="true"></i></span>',
                            '<span class="passcodeStyleInput"><i class="fa fa-circle backgroundNone" aria-hidden="true"></i></span>'
                            ].join(''),
                        listeners:

                            blur: function()
                                var Athis = this.up('confirmation1');
                                var txtValue = this.getValue() == null ? 0 : this.getValue().length;
                                Athis.onInputValue(txtValue, this, 'Blur');
                            ,
                            focus: function()
                                var Athis = this.up('confirmation1');
                                var txtValue = this.getValue().focus() == null ? 0 : this.getValue().length;
                                Athis.onInputValue(txtValue, this, '');
                            ,
                            keyup: function()
                                var Athis = this.up('confirmation1');
                                var txtValue = this.getValue() == null ? 0 : this.getValue().length;
                                Athis.onInputValue(txtValue, this, '');
                            ,
                            change: function()
                                var pinLength = this.getValue().length;
                                if (pinLength >6)
                                    this.setValue(this.getValue().toString().substring(0,6));    
                                
                                var Athis = this.up('confirmation1');
                                var txtValue = this.getValue() == null ? 0 : this.getValue().length;
                                Athis.onInputValue(txtValue, this, '');
                            
                        

                    ]


                
       ]
 
)

【问题讨论】:

【参考方案1】:

在新的 ext 版本中,keyup 事件仅在 enableKeyEvents 设置为 true 时触发。在您的文本字段中添加 enableKeyEvents : true keyup 事件将开始工作。另请检查Doc,您可以在其中验证 enableKeyEvents 以及焦点如何工作。

当这个组件获得焦点时触发。

【讨论】:

是的,谢谢我尝试测试你解决但仍然无法工作的代码 xtype:'textcodefield',下方粘贴enableKeyEvents : true 还有哪些 xtype ?检查 xtype 是否有 keyup 事件的 doc weather。 我检查了 doc 已经 xtype 有 keyup 并且也可以在 ios 中使用,但我不知道为什么不支持在 Android 中 所以我想解决我为什么 iso 工作正常但 Android 不工作

以上是关于Android sencha extjs 不支持事件焦点和 keyup的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Extjs 值不绑定

在 Sencha Touch/ExtJS 中不使用 store 删除列表项

从 sencha extjs 5.1 迁移到 extjs 6

在sencha架构师(ExtJS)中添加js的正确方法?

VS Code升级到1.31.1后,Sencha ExtJS插件不工作的解决办法

有没有办法将 Sencha Touch 转换为 Sencha EXTJ(或将 EXTJ 转换为 Touch)?