在ExtJS中,如何在组件中注入enableKeyEvents=true?
这是我的密码在ExtJS中,如何在组件中注入enableKeyEvents=true?,events,extjs,Events,Extjs,这是我的密码 myText.enableKeyEvents = true; // ** myText.on('keyup', function(t){ console.log(t.getValue()); }); 它不工作,我想它可能有一些调用方法。 有人有主意吗 完整代码 // function var txfJump = function(txf){ var next = txf.nextSibling(); if(next.xtype == 'textfield'){
myText.enableKeyEvents = true; // **
myText.on('keyup', function(t){ console.log(t.getValue()); });
它不工作,我想它可能有一些调用方法。有人有主意吗
完整代码
// function
var txfJump = function(txf){
var next = txf.nextSibling();
if(next.xtype == 'textfield'){
txf.enableKeyEvents = true;
txf.on('keyup', function(t, e){
if(t.getValue().length == t.maxLength){
next.focus();
}
});
txfJump(next);
}
};
// form
var p = new Ext.Panel({
title : 'test panel',
width : 400,
defaults: {
xtype : 'textfield',
},
items : [
{ ref : 'one', maxLength : 5 },
{ ref : 'two', maxLength : 5 },
{ ref : 'three',maxLength : 5 },
{
xtype : 'button',
text : 'SAMPLE'
},
{ ref : 'four', maxLength : 5 },
],
renderTo: Ext.getBody()
});
Ext.onReady(function(){
txfJump(p.one);
});
获取新的Ext.form.TextField实例时,应传递“enableKeyEvents”:true。下面是使用示例
var textField = new Ext.form.TextField({
. // your configs
.
enableKeyEvents: true,
.
.
})
var textField=new Ext.form.textField({
.//您的配置
.
enableKeyEvents:true,
.
.
})
没有黑客把戏是不可能的。阅读了
TextField
的源代码后,我发现有一个私有方法initEvents
,当且仅当设置了enableKeyEvents
时,该方法才为html元素设置回调。因此,在调用initEvents
之后更改enableKeyEvents
,在再次调用之前没有任何效果
要注入它,可以尝试触发组件的重新呈现,也可以复制
TextField
的initEvent
的相关部分的行为。但是似乎没有正式的方法。您必须调用txf.initEvents()
,这需要在txf.enableKeyEvents=true之后调用
var txfJump = function(txf){
var next = txf.nextSibling();
if(next.xtype == 'textfield'){
txf.enableKeyEvents = true;
txf.initEvents(); //<----- this is what you have missing
txf.on('keyup', function(t, e){
if(t.getValue().length == t.maxLength){
next.focus();
}
});
txfJump(next);
}
var txfJump=函数(txf){
var next=txf.nextSibling();
如果(next.xtype=='textfield'){
txf.enableKeyEvents=true;
txf.initEvents();//你能为你的代码提供一点更多的上下文吗?请粘贴其余的文本字段代码及其容器。如果你认为没有必要包含其他字段,你可以省略它们。我更新了我的完整代码,谢谢你的回复。现在我找到了一些操作来启用KeyEvent,这是mom()。这是我的代码=>txf.mon(txf.el,{scope:txf,keyup:txf.onKeyUp});我知道Fatih,但我想做注入函数,所以我无法设置组件配置。感谢keppla,似乎mon是通过该方法调用的。