我正在使用以下 keyup 事件处理程序。
<script type="text/javascript">
$('.someClass').on('keyup', function(e){
console.log($(this).val());
});
</script>
在编写 keyup 事件并输入“qwe”时。
实际结果:“qwe” 期望结果:
“q”
“qw”
“qwe”
我在这里简化了它,但我也尝试过关闭,正确的方法是什么?
我正在使用以下 keyup 事件处理程序。
<script type="text/javascript">
$('.someClass').on('keyup', function(e){
console.log($(this).val());
});
</script>
在编写 keyup 事件并输入“qwe”时。
实际结果:“qwe” 期望结果:
“q”
“qw”
“qwe”
我在这里简化了它,但我也尝试过关闭,正确的方法是什么?
我发现了一个棘手的(丑陋的?)解决方案,即使您快速键入也可以:
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/
请注意,它不会在修饰键事件(即退格键、移位、箭头)上打印 - 如果您也想要,请回复,我会尝试修复它。
这是我最后使用的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);
});