0

我正在使用以下 keyup 事件处理程序。

<script type="text/javascript">
  $('.someClass').on('keyup', function(e){
    console.log($(this).val());
  });
</script>

在编写 keyup 事件并输入“qwe”时。
实际结果:“qwe” 期望结果:
“q”
“qw”
“qwe”

我在这里简化了它,但我也尝试过关闭,正确的方法是什么?

4

2 回答 2

1

我发现了一个棘手的(丑陋的?)解决方案,即使您快速键入也可以:

var prevVal = '';
$('.someClass').on('keypress', function (e) {
    prevVal += String.fromCharCode(e.which);
    console.log(prevVal);
}).on('keyup', function() { prevVal = $(this).val() });

见这里:http: //jsfiddle.net/FZHZJ/1/

请注意,它不会在修饰键事件(即退格键、移位、箭头)上打印 - 如果您也想要,请回复,我会尝试修复它。

于 2013-01-27T16:42:32.893 回答
0

这是我最后使用的solotion。
它在按键时将值推送到数组,并在按键时弹出它。
(堆栈与反向使用..)

var stackValues = new Array();
$('.someClass').on('keypress', function (e) {
   prevVal = $(this).val();
   prevVal += String.fromCharCode(e.which);
   stackValues.push(prevVal);
}).on('keyup', function() { 
   var value = (stackValues.reverse()).pop();
   stackValues.reverse();
   console.log('value:', value);
});
于 2013-01-28T08:55:58.660 回答