我已将此缩减为最小代码以显示此问题。问题是,这在我的计算机上的Chrome上工作正常,但在我的Android上的Chrome上,它无法正常工作。首先,高度简化的代码:
<html><head><script language='javascript'>
function kd(e) {
inp = document.getElementById('myinput');
if(inp.value=='example') inp.value='';
return true;
}
</head><body>
<input type='text' id='myinput' value='example'
onkeydown='return kd(event);'>
</body></html>
在我的计算机上,我将光标放在说明示例的框中。我按任意键。 “示例”这个词消失了,我按下的任何字母都出现了。
现在,在Android / Chrome上,我将光标放在说明示例的框中。我按任意键。 “示例”这个词消失了,但我写的字母没有出现。如果我按另一把钥匙,它会显示那封信。我可以继续打字。它只是拒绝显示我按下的第一个字母。
这显然与javascript的value=''
部分有关。如果我注释掉该行,它可以正常工作(但在按下第一个键时不会删除单词“example”)。
更新:我在iPhone上测试了这个。它正确显示了第一个按键的字母。因此,这仅限于Android或Android的Chrome。
答案 0 :(得分:1)
清除输入焦点上的文字
$('input').val('');
以及使用keyup
事件的更好做法,因为用户倾向于将手指放在您想要的键盘上,以确保获得他们想要的内容