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 Touch/ExtJS 中不使用 store 删除列表项
从 sencha extjs 5.1 迁移到 extjs 6