gpt4 book ai didi

javascript - 如何在移动浏览器上取消 keydown

转载 作者:行者123 更新时间:2023-11-30 06:21:19 33 4
gpt4 key购买 nike

我有这个在桌面浏览器上完美运行。它检查用户何时按下邮政编码文本输入字段中的键:

zip_field.addEventListener(
'keydown',
function(evt){check_zip({evt:evt, zip_field: zip_field, submit_button: submit_button})},
false
)

如果用户键入字母等,check_zip 函数底部会取消按键:

if(prevent_key)
{
evt.preventDefault()
evt.stopPropagation()
return false;
}

在移动浏览器上,if 语句的处理方式与在桌面浏览器上的处理方式相同,但它仍然允许字符通过。但是,如果我放入断点并单步执行代码,它就可以正常工作!

我在 Android 上的 Chrome 和 Firefox 中进行了测试,两者都发生了这种情况。是否需要在移动设备上执行其他操作以防止/取消 key 并防止其出现在输入框中?

更新:我能够在 iPhone 上进行测试,它可以正常工作。所以它只在 Android 上坏了(FF、Chrome 和三星浏览器都失败了)。

最佳答案

在创建一个精简的测试页面之后,我发现 Chrome 总是将使用 Android 键盘按下的键解释为 keydown 事件中的 keyCode 229。如果我用 USB 数据线将手机插入电脑,我在桌面键盘上按下的键使用了正确的键码,但手机虚拟键盘上的键码都是 229。经过更多研究,我发现:

keyCode on android is always 229

但是,如果我放入断点并单步执行它,我无法弄清楚为什么它会起作用。

关于javascript - 如何在移动浏览器上取消 keydown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52898840/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com