我有一个 iPad webapp 有一个很大的 <form>
在某一点。其中的每个输入都有控制值的函数,包括 keyUp 和 Blur 事件。
事实是,如果用户在键入时不小心按下了“开始”按钮(被视为“输入”按键),则会提交表单。我想拦截这个组件并触发焦点元素的 onBlur() 事件。
现在我有这个:
load(){
document.addEventListener("keydown",logPressedKeys,false);
}
/**
* logs the keys hit in the console, will eventually trigger my onBlur event
*/
function logPressedKeys(e) {
console.log(e.keyCode);
if (e.keyCode==13) {
console.log('Enter spotted: prevent!');
e.preventDefault();//Shall prevent submitting
return false;//Hoping it prevents default if above fails
}
}
你们对此有什么建议/想法/改进吗?
注意:必须至少有一个输入集中在 iPad 的键盘上才能弹出。
最佳答案
发现 document.activeElement 在 iPad 的 Safari 中有效。
function logPressedKeys(e) {
console.log(e.keyCode);
if (e.keyCode==13) {
e.preventDefault();
console.log('Enter spotted: prevent!');
temp=document.activeElement;
//console.log(temp);
temp.onblur();
return false;
}
return true;
}
关于javascript - 如何处理按下 ENTER 键以触发 onBlur() 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548176/