在输入编号的上/下按钮处检测不同的事件

时间:2019-03-21 10:55:35

标签: javascript jquery html

是否可以区分输入类型编号的事件上/下按钮?

我了解到有一个change事件,但是我想知道是否可以通过按下向上/向下按钮来识别不同的事件。

我会更加清楚:

<input class="form-control" id="field" type="number" min="1" value="<VALUE>" onkeydown="return false">
$("#field").change(function(e){ ... }

我想要什么:

$("#field").onUpPressed(function(e){ ... }
$("#field").onDownPressed(function(e){ ... }

1 个答案:

答案 0 :(得分:2)

没有默认事件。要使其正常工作,您需要存储先前的值(可以使用data属性),然后将其与新值进行比较,如下所示:

var $field = $("#field").on('input', function(e) {
  var newVal = parseInt($field.val(), 10);
  var oldVal = $field.data('old');
  
  console.log(newVal > oldVal ? 'up' : 'down');
  
  $field.data('old', newVal);
});

$field.data('old', $field.val());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="form-control" id="field" type="number" min="1" value="<VALUE>" onkeydown="return false">