捕获“;输入“;Android/Cordova/Knockout中数字输入的按键

捕获“;输入“;Android/Cordova/Knockout中数字输入的按键,android,cordova,knockout.js,Android,Cordova,Knockout.js,我正在使用Cordova/PhoneGap 2.5.0、Knockout 2.1.0和jQuery Mobile 1.3.0创建一个Android应用程序 我已经创建了一个类型为“number”的输入,这个输入是数据绑定的,其值被敲除。它还被数据绑定到按键事件。我打算捕捉到用户按下enter键 self.myInputKeypress=函数(){ var keyCode=(event.which?event.which:event.keyCode); 警报(键码); 如果(键代码===13){

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

我已经创建了一个类型为“number”的输入,这个输入是数据绑定的,其值被敲除。它还被数据绑定到按键事件。我打算捕捉到用户按下enter键


self.myInputKeypress=函数(){
var keyCode=(event.which?event.which:event.keyCode);
警报(键码);
如果(键代码===13){
//你在这里工作吗
返回false;
}
返回true;
};
当我按下允许的键(如数字)时,代码按预期运行,按下的键代码将发出警报。当我按键盘上的enter键时,什么也没发生,似乎Android正在抑制它认为不相关的按键的事件


有没有办法改变这种行为,这样我就可以捕捉到按enter键的用户?

试试看,在您的情况下,使用jquery mobile可以做到这一点

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

您好,请将文本框放入表单标记中

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

当你点击go alert is open时

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

这对我很有用:

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

如果您使用的是离子型/角度型

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

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

self.myKeyPressed=函数(keyEvent){
if(keyEvent.keyCode==13)//做一些事情
}

请检查返回的退格键代码。您好,退格键也不会返回键代码(这同样适用于+、*、-)。安卓系统似乎正在抑制按键,因为它认为按键不适用于数字输入。我在其他地方也观察到类似的行为。根据我读到的文字,Android正在禁止对不可见字符按键。谢谢你的评论。看起来我可以在捕获“enter”事件或将输入作为“number”类型之间进行选择。如果能在某个地方找到此文档以确保,那将很好,但我还不能。我建议尝试以下事件:{'afterkeydown':$root.myInputKeypress}或事件:{'input':$root.myInputKeypress}
$('.ui-input-text').live('keyup', function(event) {
if (event.keyCode == 9) {
    // 'Go' pressed do something
}});
<input ng-keypressed="myKeyPressed($event)" ng-model="myField">

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