对于按键,键盘,按键和键控,Javascript有three events。
出于某种原因,Sencha Touch仅支持他们的键盘事件。我想在更改文本字段中的值之前捕获事件(可能是keydown或keypress)。捕获keydown事件将使这成为可能,也应该更快。使用keyup,效果有点慢。
最后目标是允许用户只输入数字并自动添加小数和千位分隔符。目前关键事件的可能性很快,但速度很慢。作为用户,您可以看到文本发生变化,然后再次更改。
我将keydown事件添加到文本字段的代码:
initialize: function()
{
this.down('textfield[name=amountTotal]').onkeydown
= MyApp.app.getController('MyController').handleInput;
}
我已经检查过,当执行此代码时,找到了文本字段,控制器函数确实保存了我想要执行的正确函数。我还将该功能添加到了我的视图文件中。
但它无法达到我的handleInput功能。
我知道Sencha does not support other events,但只有纯粹的javascript才能实现。
答案 0 :(得分:1)
你几乎得到了它。
initialize: function() {
var textfield = this.down('textfield[name=amountTotal]');
textfield.bodyElement.dom.onkeydown = MyApp.app.getController('MyController').handleInput;
}