我正在使用以下 keyup 事件处理程序。
<script type="text/javascript">
$('.someClass').on('keyup', function(e){
console.log($(this).val());
});
</script>
在编写 keyup 事件时,键入 "qwe"。
实际结果:"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/
请注意,它不会在修饰符键控事件(即退格键、移位、箭头)上打印 - 如果您也想要,请回复,我会尝试修复它。
这是我最后使用的sulotion。
它在按键时将值推到数组,并在 Keyup 上弹出它。
(堆栈与反向一起使用。
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);
});