Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Android mobile中未触发按键事件_Javascript_Android_Backbone.js_Marionette - Fatal编程技术网

Javascript Android mobile中未触发按键事件

Javascript Android mobile中未触发按键事件,javascript,android,backbone.js,marionette,Javascript,Android,Backbone.js,Marionette,我在应用程序中使用了主干网、木偶。我在桌面和手机中使用了相同的代码,但按键在手机中不工作。我做了一个测试 如果您在mobileevent not firming中打开此链接,如果您在desktop中打开此链接,它正在启动。我如何解决此问题 有人能帮我吗 谢谢。在browserstack上测试。似乎对我有用。 以下是您的要点链接: 您能告诉我您测试的是哪种特定的andriod设备和浏览器吗。最后我发现了一个问题,但它在opera中不起作用。我没有编写数字字段的代码。我只是在html文件的输入字段

我在应用程序中使用了
主干网、木偶
。我在
桌面和手机
中使用了相同的代码,但
按键
手机
中不工作。我做了一个测试

如果您在
mobile
event not firming中打开此链接,如果您在
desktop
中打开此链接,它正在启动。我如何解决此问题

有人能帮我吗


谢谢。

在browserstack上测试。似乎对我有用。 以下是您的要点链接:


您能告诉我您测试的是哪种特定的andriod设备和浏览器吗。

最后我发现了一个问题,但它在opera中不起作用。我没有编写数字字段的代码。我只是在html文件的输入字段中添加了一个属性type='number'。现在只有数字键盘。因此它满足了我的要求。下面是

html代码:

<input type='number'/>

Chrome mobile暂时不支持按键事件。这方面有一个长期存在的错误:


我认为它应该在v38中修复。错误报告被关闭为“不会修复”。

我将在输入框中建议两个事件

这将在桌面webbrowser上运行。

1)
onkeypress=返回isNumberKey(事件)

在输入框上应用这两个事件,它就会工作。唯一的缺点是,它会使它变慢。但现在我们不得不接受它


此解决方案存在一个问题。左侧导航不起作用。我将很快更新更合适的解决方案。

似乎
keypress
事件已被弃用(请参阅)最好现在就使用
keydown
事件,以免所有浏览器都对其失去支持。

根据我的经验,我想与大家分享我的知识

桌面浏览器

<input type="number">
让我知道是否有任何方法可以检测输入[type=“number”]中的光标位置


建议

对于桌面浏览器,使用输入[type=“text”]处理按键事件等情况,并使用光标位置替换某些值


对于Android浏览器,使用input[type=“tel”]处理上述相同情况。

我使用的是
motorola motog
和浏览器
google chrome
。Android版本是什么?>=4.4?@aravind我使用的是
motorola moto g
,版本为
4.4.2
,看看这个。android>=4.4的问题在于,浏览器不会一直触发
keypress
事件。使用
input
event,它是可靠的。@aravind我试过你的想法,但是
keycode
不起作用。你能检查
http://jsfiddle.net/33Snz/14/
。正在获取未定义的
啊,我的坏消息。有你的问题,你正在试图防止默认情况下,它不是一个数字。对于这个问题,您的解决方案是正确的。但是按键未触发事件没有解决我想:(那么你找到问题的解决方案了吗?你能分享吗?打开
jsFiddle
,这是我在回答中提到的。我在这里打开了一个。看起来该事件被注释掉了
/“beforeinput#search#input”:“typeOfField”
。如果我不见了,请纠正我something@aravind如果你提到
type='number'
,你不需要写任何额外的代码。这就是我隐藏的原因。好吧,我明白了..所以你避免了处理
keypress
事件的问题。谢谢你的解释。更新你的问题会有帮助,因为它听起来有误导性。奇怪的是,y如果你按住ALT键(我用的是黑客键盘),你会得到正确的键码,尽管这非常烦人,而且会减慢打字速度。
function numberMobile(e){
    e.target.value = e.target.value.replace(/[^\d]/g,'');
    return false;
}
<input type="number">
<input type="text">
<input type="tel">
<input type="number">
 <input type="text">
 <input type="tel">
let caretPos = e.target.selectionStart