小编典典

禁用滚动``

all

是否可以禁用滚轮更改输入数字字段中的数字?我已经弄乱了特定于 webkit 的 CSS
来删除微调器,但我想完全摆脱这种行为。我喜欢使用type=number它,因为它在 iOS 上提供了一个不错的键盘。


阅读 68

收藏
2022-08-05

共1个答案

小编典典

防止鼠标滚轮事件在其他人建议的输入数字元素上的默认行为(调用“blur()”通常不是首选方法,因为这不是用户想要的)。

但。我会避免一直监听所有 input-number 元素上的鼠标滚轮事件,并且只在元素处于焦点时(即问题存在时)才这样做。否则,当鼠标指针位于 input-
number 元素上的任何位置时, 用户无法滚动页面。

jQuery的解决方案:

// disable mousewheel on a input number field when in focus
// (to prevent Chromium browsers change the value when scrolling)
$('form').on('focus', 'input[type=number]', function (e) {
  $(this).on('wheel.disableScroll', function (e)聽{
    e.preventDefault()
  })
})
$('form').on('blur', 'input[type=number]', function (e) {
  $(this).off('wheel.disableScroll')
})

(将焦点事件委托给周围的表单元素 - 以避免对许多事件侦听器不利,这对性能不利。)

2022-08-05