onchaydown in sencha touch

时间:2014-10-24 12:23:09

标签: javascript extjs javascript-events sencha-touch-2 keyboard-events

对于按键,键盘,按键和键控,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才能实现。

1 个答案:

答案 0 :(得分:1)

你几乎得到了它。

initialize: function() {
    var textfield = this.down('textfield[name=amountTotal]');
    textfield.bodyElement.dom.onkeydown = MyApp.app.getController('MyController').handleInput;
}

小提琴:https://fiddle.sencha.com/#fiddle/caj