我已将其减少到最少的代码以显示此问题。问题是这在我电脑上的 Chrome 上运行良好,但在我的 Android 上的 Chrome 上,它无法正常运行。首先,高度简化的代码:
<html><head><script language='javascript'>
function kd(e) {
inp = document.getElementById('myinput');
if(inp.value=='example') inp.value='';
return true;
}
</script>
</head><body>
<input type='text' id='myinput' value='example'
onkeydown='return kd(event);'>
</body></html>
在我的电脑上,我将光标放在显示示例的框中。我按任意键。 “示例”一词消失,我按下的任何字母都会出现。
现在,在 Android/Chrome 上,我将光标放在显示示例的框中。我按任意键。 “示例”一词消失了,但我按下的字母没有出现。如果我按另一个键,它会显示那个字母。我可以继续打字。它只是拒绝显示我按下的第一个字母。
这显然与 javascript 的 value=''
部分有关。如果我注释掉该行,它工作正常(但在按下第一个键时不会删除“示例”一词)。
更新:我在 iPhone 上对此进行了测试。它正确显示第一个按键的字母。因此,这仅限于 Android 或 Android 的 Chrome。
最佳答案
清除输入焦点上的文本
$('input').val('');
更好的做法是使用 keyup
事件,因为用户倾向于在您想要的键盘上拖动他们的手指确保您得到他们想要的东西
关于javascript - Android Chrome 输入 onkeydown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32382539/