javascript - Android Chrome 输入 onkeydown

标签 javascript android google-chrome onkeydown

我已将其减少到最少的代码以显示此问题。问题是这在我电脑上的 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/

相关文章:

java - 强制改造以加载新数据

css - 使用::before 背景图像时移动设备(chrome)上的图像边框问题

javascript - Chrome 控制台 Javascript "Cannot read property ' 点击“未定义”

javascript - Angular Directive(指令)共享范围问题

javascript - 向 Angular 对象添加动态函数

android - Listview 项目上的 Nativescript 切换类

java - Android AudioTrack替代

json - 迭代 JavaScript JSON 对象 - Chrome/Opera 下一步反向 - FireFox/Safari OK

javascript - 动态添加标签到面板不会刷新面板

javascript - 如何使用 select AJAX 完成表单?