keyPress事件不会在Android手机中触发

我为我的应用程序使用backbone,marionette 。我使用相同的代码为desktop and mobilekeypress不能在mobile工作。我做了一个Jsfiddletesting。

如果你在mobile事件中打开这个链接不开火,如果你在desktop打开它正在发射。我可以如何解决这个问题。

谁能帮我。

谢谢。

Solutions Collecting From Web of "keyPress事件不会在Android手机中触发"

Chrome移动版目前不支持按键事件。 有一个长期存在的bug:

https://code.google.com/p/chromium/issues/detail?id=118639

我相信它应该在v38中修复。

我会在input框上提出两个事件。

这将在桌面浏览器上运行。

1) onkeypress = return isNumberKey(event);

 function isNumberKey(e) { var evt = e || window.event; if(evt) { var charCode = evt.keyCode || evt.which; } else { return true; } if((charCode > 47 && charCode < 58) || charCode == 9 || charCode == 8 || charCode ==46 || charCode ==37 || charCode==39) { return true; } return false; } 

这将适用于移动

2) onkeyup="numberMobile(event);"

 function numberMobile(e){ e.target.value = e.target.value.replace(/[^\d]/g,''); return false; } 

在input框中应用这两个事件,它将起作用。唯一的缺点是,它使它慢。但现在我们必须忍受它。

这个解决scheme有一个问题。左边的导航不工作,我会尽快更新更合适的解决scheme。

在浏览器上testing。 似乎正在对我工作。 以下是您的要点链接:

http://www.browserstack.com/start#os=android&os_version=4.1&device=Samsung+Galaxy+S+III&zoom_to_fit=true&full_screen=true&url=http%3A%2F%2Fjsfiddle.net%2F33Snz%2F3%2Fembedded%2Fresult%2F&speed = 1&开始=真

你可以让你知道你在testing什么特定的Andriod设备和浏览器。

最后,我发现一个问题,但它不会在opera中工作。而不是编写数字字段的代码。我只是添加一个属性type ='数字'input字段在html文件。现在只有数字小键盘即将。因此满足我的要求。这里是JsFiddle

html代码:

 <input type='number'/>