我正在玩一些HTML5元素,并遇到了一个有趣的行为.这仅适用于Chrome.
使用输入类型的数字,您可以设置最小值,最大值和步长,并使用向上和向下箭头来控制输入. <input type="number" min="0" max="100" step="5" />
我发现绑定一个click事件监听器会捕获箭头上的按下,因为在字段模糊之前实际上不会发生更改.您还可以使用键盘上的向上和向下箭头键来更改限制范围内的值,按键绑定可以选择这些键.
但是,在Chrome中,您还可以通过将鼠标悬停在输入和滚动上来使用鼠标滚轮来更改输入.但是,我无法找到听取此事件的方法.
HTML:
<input type="number" min="0" max="100" step="5" id="test" />
Run Code Online (Sandbox Code Playgroud)
JavaScript(使用jQuery):
$( '#test' ).click(function(){
$( this ).after( '<br />click' );
});
$( '#test' ).change(function(){
$( this ).after( '<br />change' );
});
$( '#test' ).keypress(function(){
$( this ).after( '<br />keypress' );
});
Run Code Online (Sandbox Code Playgroud)
关于如何听取滚动更改的任何想法?同样,这只适用于撰写本文时的Chrome.
与这个问题类似,我试图防止滚轮形式增加数字输入。
在 Chrome/webkit 中,以下内容有效,但在 Firefox 中,滚轮仍然会更改输入。
$('input[type=number]').on('mousewheel',
function(e){ $(this).blur(); }
);Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number">Run Code Online (Sandbox Code Playgroud)