我正在使用以下keyup事件处理程序。
<script type="text/javascript">
$('.someClass').on('keyup', function(e){
console.log($(this).val());
});
</script>
编写keyup事件时,输入“qwe”
实际结果:“qwe”
期望的结果:
“Q”
“QW”
“QWE”
我在这里简化了,但我也尝试了关闭,这是正确的方法吗?
答案 0 :(得分: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/
请注意,它不会在修饰键盘事件上打印(例如退格键,移位键,箭头键) - 如果你想要它也会回复,我会尝试修复它。
答案 1 :(得分:0)
这是我最后使用的闷热。
它在按下时将值推送到数组,并在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);
});