捕获“输入”在Android / Cordova / Knockout中使用数字输入进行按键 [英] Capture "Enter" keypress with numeric input in Android/Cordova/Knockout

查看:138
本文介绍了捕获“输入”在Android / Cordova / Knockout中使用数字输入进行按键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Cordova / PhoneGap 2.5.0,Knockout 2.1.0和jQuery Mobile 1.3.0创建了一个Android应用程序。

I am creating an Android application using Cordova/PhoneGap 2.5.0, Knockout 2.1.0 and jQuery Mobile 1.3.0.

我创建了一个输入类型number,这个输入是与Knockout的数据绑定的值。它也是一个关键的新闻事件数据。我打算捕获用户按下 enter 键。

I have created an input with type "number", this input is databound with Knockout on it's value. It is also databound to a key press event. I'm intending to catch the user pressing the enter key.

<input type="number" data-bind="value: $root.myInputValue, event: { keypress: $root.myInputKeypress }" min="0" step="1" max="29">


self.myInputKeypress = function() {
    var keyCode = (event.which ? event.which : event.keyCode);

    alert(keyCode);

    if (keyCode === 13) {
        //Do work here

        return false;
    }

    return true;
};

当我按一个允许的键,如一个数字时,代码按预期运行,按下的键代码警报。当我在键盘上按 enter 时,没有任何反应,似乎Android会从键认为不相关的键中抑制事件。

When I press an allowed key such as a number the code runs as expected and the pressed keys code is alerted. When I press enter on the keyboard nothing happens, it seems that Android is suppressing events from keys it thinks are not relevant.

方法改变这种行为,使我可以捕获进入

Is there a way to change this behaviour so that I can capture the user hitting enter?

推荐答案

使用 Ionic / Angular

If you are using Ionic/Angular

<input ng-keypressed="myKeyPressed($event)" ng-model="myField">

self.myKeyPressed = function(keyEvent) {
    if(keyEvent.keyCode == 13) //do things
}

这篇关于捕获“输入”在Android / Cordova / Knockout中使用数字输入进行按键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆