javascript - 如何处理按下 ENTER 键以触发 onBlur() 事件?

标签 javascript ipad

我有一个 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/

相关文章:

javascript - 如何在 Python 中使用 Flask 压缩/最小化 JSON/Jsonify 的大小?

javascript - 如何在 jQuery 中设置选择下拉菜单的大小

ios - 不同 iPad 版本和 iPad 型号中的 UI 缩放?

ios - 如何关闭 Popoverviewcontroller?

javascript - Ajax 上。 ('keydown' ) 事件正在堆叠

javascript - Node.js 客户端 session 不创建 req.session

ios - 新 iPad 将 iphone 应用程序的启动图像显示为应用程序图标,而不是应用程序图标图像

ios - iPadOS 13 上的屏幕旋转故障

iphone - 如何在 iPhone 中查看 eps 文件?

javascript - 如何将 List<> 传递给 Javascript 并在组合框 C# 中显示