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