html - 如何防止 `-`和 `+`字符输入类型号?

标签 html css

<input type="number" min="0" step="1"  pattern="[0-9]" />

<br><br>

但是上面的输入允许 +- 键。如何在不使用 js 的情况下使此输入类型严格只允许 0-9

最佳答案

没有 JS 是不可能的。

const allNumberInputs = document.querySelectorAll( 'input[type=number]' );
function disallowPrefixEvent( e ) {
  const keyCode = e.keyCode || e.which;
  if ( keyCode === 187 || keyCode === 189 ) {
    e.preventDefault();
  }
}
for ( let i = 0; i < allNumberInputs.length; i += 1 ) {
  allNumberInputs[ i ].addEventListener( 'keydown', disallowPrefixEvent );
}
<input type="number" min="0" step="1"  pattern="[0-9]" />

关于html - 如何防止 `-`和 `+`字符输入类型号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45817292/

相关文章:

html - 更改应用了调整大小样式的元素的调整大小图标

javascript - 编辑和删除 firebase

javascript - 3D CSS 立方体 - 奇怪的旋转不一致(已解决 : Gimbal Lock)

html - 保持图像相对于屏幕尺寸 CSS div id

javascript - 调整表格单元格/行的大小以适合新旋转的图像

javascript - 使用 css-classes 中的样式将富文本复制到剪贴板

javascript - Rails 应用程序 C9 中的 JavaScript 问题

c# - 在表格单元格中叠加两张图片

javascript - 无法在 ng-repeat 内使用 angular.element 进行选择

Javascript:动画 marginLeft 时出现奇怪的错误?