使用Android / Cordova / Knockout中的数字输入捕获“Enter”按键

时间:2013-04-03 10:26:22

标签: android cordova knockout.js

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

我创建了一个类型为“number”的输入,这个输入是数据绑定,其值为Knockout。它也是一个重要的新闻事件。我打算抓住用户按输入键。

<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;
};

当我按下允许的键(例如数字)时,代码按预期运行,并且按下的键代码会被警告。当我在键盘上按输入时没有任何反应,似乎Android正在抑制它认为不相关的键的事件。

有没有办法改变这种行为,以便我可以捕获用户点击输入

4 个答案:

答案 0 :(得分:1)

如果您使用 Ionic / Angular

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

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

答案 1 :(得分:0)

尝试这可以在你的情况下使用jquery mobile

$('.ui-input-text').live('keyup', function(event) {
if (event.keyCode == 13) {
    // 'Go' pressed do something
}});

答案 2 :(得分:0)

hi将您的文本框放在表单标记

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

并添加事件表单提交标记

$(document).ready(function () {
    $("#Articleform").on('submit', function (event) {
        alert("enter");
        return false;
    });

当你点击go alert是打开的

答案 3 :(得分:0)

我有同样的问题,问题是数字字段输入的键码在我的设备上是9,在模拟器上是13。

这对我有用:

$('.ui-input-text').live('keyup', function(event) {
if (event.keyCode == 9) {
    // 'Go' pressed do something
}});