是否可以禁用滚轮在输入数字字段中更改数字?我已经弄乱了特定于Webkit的CSS,以删除微调框,但我想完全摆脱这种行为。我喜欢使用type=number它,因为它在iOS上带来了一个不错的键盘。
type=number
防止其他对象建议的输入数字元素上的mousewheel事件的默认行为(调用“ blur()”通常不是首选方法,因为这不是用户想要的)。
但。我会避免一直监听所有input-number元素上的mousewheel事件,而只在该元素处于焦点时(即存在问题的时候)才这样做。否则 , 当鼠标指针在输入数字元素上的任意位置时 ,用户将无法滚动页面 。
jQuery解决方案:
// disable mousewheel on a input number field when in focus // (to prevent Cromium 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') })
(将焦点事件委托给周围的表单元素-避免使用许多不利于性能的事件侦听器。)