在将按键事件应用于DOM之前,如何确定值之后的值是什么?

时间:2016-09-25 19:26:10

标签: javascript jquery html keypress

我有一个文本框,用户将输入一个数字。我想将这个数字限制在最多500万(5000000)。我想禁止任何会导致这个数字超过500万的按键。我知道我可以等待keyup然后使用值,但我想完全阻止按键。

如果在实际发生之前应用给定的keydown / keypress事件后,如何确定文本框的值是什么?

编辑:为清楚起见,请考虑以下情况:

该框目前包含数字“4000000”。

用户突出显示最后一个数字并将其更改为1,以使其变为“4000001”

但是用户可能只是添加了1到最后。 keydown事件看起来完全一样,但结果将超出我想要允许的值范围。

如果keydown事件正常应用,我需要知道盒子的价值是什么,但在发生之前我需要知道。

要明确的是,这篇文章并不是将文本字段限制为仅限数字。我有能力做到这一点。

1 个答案:

答案 0 :(得分:1)

这就是你要找的吗?



var max = 4000000;
var last_value;

$('#someinput').on('input', function(e){
  var value = $(this).val();

  if(value<=max)
    last_value = value;
  else
    $(this).val(last_value);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="someinput" type="number"/>
&#13;
&#13;
&#13;