概要
Firefox や Google Chrome では、input type="number" フィールドの値をホイール操作で変更する事ができます。
入力ミスを防ぐ等の理由から、無効化したいケースがあると思います。
その場合の対処法メモです。
マウスホイールによる値の変更を無効化する例 (jQuery)
$(function(){
$('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')
})
});
wheel イベント詳細はこちら
https://developer.mozilla.org/en-US/docs/Web/Events/wheel
IE9 以降のクロスブラウザに対応可。
スピンボタンも非表示にする例
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type=number] {
-moz-appearance: textfield;
}