如果想要我的nubmerfield取“,”并将其转换为“。”关键。 Numberfield不允许在其中输入“,”。我想处理“特殊键”并添加“。”手动。但“,”并不是特别的关键。如何在那里添加?
答案 0 :(得分:1)
如果您想将','转换为'。'在key up上,你为什么要用'specialkey'事件处理它?你为什么不使用'keyup'事件?
以下是一个例子:
Ext.create ('Ext.window.Window', {
renderTo: Ext.getBody () ,
width: 300 ,
height: 150 ,
title: 'It works!' ,
items: [{
xtype: 'numberfield' ,
enableKeyEvents: true ,
fieldLabel: 'Age' ,
listeners: {
keyup: function (nf, evt) {
// 188 is ','
if (evt.getKey () == 188) {
nf.setRawValue (nf.getRawValue () + '.');
}
}
}
}]
}).show ();
否则,您可以使用 disableKeyFilter 属性来允许用户插入特殊字符,例如。&amp; *%等,然后找到一种方法来替换','和'。'< / p>
顺便说一下,如果你想用特殊键事件处理',',这里有一个技巧:
Ext.create ('Ext.window.Window', {
renderTo: Ext.getBody () ,
width: 300 ,
height: 150 ,
title: 'It works!' ,
items: [{
xtype: 'numberfield' ,
enableKeyEvents: true ,
fieldLabel: 'Age' ,
listeners: {
keyup: function (nf, evt) {
// 188 is ','
if (evt.getKey () == 188) {
// Fire 'specialkey' up passing ','
nf.fireEvent ('specialkey', nf, evt);
}
} ,
specialkey: function (nf, evt) {
// Here we are!
alert (evt.getKey ());
}
}
}]
}).show ();
答案 1 :(得分:0)
specialkey: function(field, e){
// e.HOME, e.END, e.PAGE_UP, e.PAGE_DOWN,
// e.TAB, e.ESC, arrow keys: e.LEFT, e.RIGHT, e.UP, e.DOWN
if (e.getKey() == e.TAB) {
//Do specific action
}
}