javascript - event.preventDefault() 不适用于 keyCode 229?

标签 javascript html

我正在尝试创建一个仅启用整数的输入字段,但在 Android Chrome 键盘中我无法阻止用户输入“.” key 。 '.' 的键码key 是 229,cancelable 也是 true,这是 event.preventDefault() 所必需的。 Console.log output for . key mobile

该代码调用 e.preventDefault(),但不知何故,它仅适用于 Chrome 中的移动输入字段。 FirefoxiOS Safari 运行良好。

function checkNumeric(e) {
  if ([46, 8, 9, 27, 13, 110].indexOf(e.keyCode) !== -1 ||
    // Allow: Ctrl+A
    (e.keyCode === 65 && e.ctrlKey === true) ||
    // Allow: Ctrl+C
    (e.keyCode === 67 && e.ctrlKey === true) ||
    // Allow: Ctrl+X
    (e.keyCode === 88 && e.ctrlKey === true) ||
    // Allow: home, end, left, right
    (e.keyCode >= 35 && e.keyCode <= 39)) {
    // let it happen, don't do anything
    return
  }
  // Ensure that it is a number and stop the keypress
  if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
    e.preventDefault()
  }
}
<input type='tel' onkeydown='checkNumeric(event)'>

最佳答案

如果更改展示位置条件会怎样

function checkNumeric(e) {
     // Ensure that it is a number and stop the keypress
  if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
    e.preventDefault()
  }
  if ([46, 8, 9, 27, 13, 110].indexOf(e.keyCode) !== -1 ||
    // Allow: Ctrl+A
    (e.keyCode === 65 && e.ctrlKey === true) ||
    // Allow: Ctrl+C
    (e.keyCode === 67 && e.ctrlKey === true) ||
    // Allow: Ctrl+X
    (e.keyCode === 88 && e.ctrlKey === true) ||
    // Allow: home, end, left, right
    (e.keyCode >= 35 && e.keyCode <= 39)) {
    // let it happen, don't do anything
    return
  }
 
}
<input type='tel' onkeydown='checkNumeric(event)'>

关于javascript - event.preventDefault() 不适用于 keyCode 229?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212595/

相关文章:

html - SVG 图像知道它们的纵横比;为什么浏览器不尊重它?

javascript - getRangeAt(0) 返回带有 parentNode 文档片段的#text 节点

javascript - 如何确保一个函数在其他函数之后被触发?

javascript - 如何将速度参数分配给回调函数

javascript - 如何从我的 webpack 2 配置创建/生成/导出文件以在我的 React 代码中使用?

javascript - 在 Canvas 中的鼠标位置放大/缩小

javascript - 在元素后面滚动时降低图像饱和度

html - IE7 检查停止页面在 IE8 中显示

javascript - 如何在浏览器中查看本地使用 Google Maps API v3 的 HTML 页面

javascript - JS - 删除数组中所有字符串开头和结尾的可选/潜在引号