如果唯一的问题是 Android 设备,我建议其他人使用 onkeyup。然后您可以检测它是否是 android(或者输入是否支持 keyup),并在必要时实施 Android 特定的解决方案。
function submit(){
function submitNow() {
var textValue = document.getElementById("foo").value;
alert(textValue);
}
if(isAndroid) {
setTimeout(submitNow, 10);
}
else {
submitNow() ;
}
}
var isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1;
var eventType = (isAndroid) ? "keyup" : "keypress" ;
document.getElementById("foo").addEventListener(EventType, submit);
然后,您可以onKeyPress = "submit();"
从输入中删除 。
当不在 Android 上时,此代码将使用 keyup 事件正常运行。当客户端在 Android 上时,它将等待 1/100 秒,这是输入更新的足够时间,但太短而不会被注意到。
通常,我会警告不要长按按键,但我不知道支持它们的 Android 键盘。
仅限安卓解决方案:
function submit(){
function submitNow() {
var textValue = document.getElementById("foo").value;
alert(textValue);
}
setTimeout(submitNow, 10);
}
document.getElementById("foo").addEventListener("keyup", submit);
onKeyPress = "submit();"
如果你真的喜欢,你甚至可以保留你的。只需删除此处的最后一行。