This is my code,
myText.enableKeyEvents = true; // **
myText.on('keyup', function(t){ console.log(t.getValue()); });
It not work, I think it may has some invoke method.
Any one has an idea ?
Full code
// 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);
});
It’s not possible without hackish tricks. Having read the
TextField‘s source, i found out, that there is a private methodinitEvents, that sets up the callbacks for the html-elements if and only ifenableKeyEventsis set. So, changingenableKeyEventsafterinitEventswas called has no effect, until it is called again.To inject it, one could try to trigger a re-rendering of the component, or one could copy the behaviour of the relevant parts of
TextField‘sinitEvent. But there doesn’t seem to be an official way.