【发布时间】:2015-01-15 11:08:05
【问题描述】:
出于特殊原因,我使用 JQuery 的 keydown() 事件来过滤隐藏输入字段中的击键。然后输入字段的值被复制到可见的 div 中。问题是由于某种原因,我按下的键在下次按下键时被复制到 div,这意味着输入延迟了一个周期。
我已经尝试过 keyup() 并且这个确实有效,但是我不喜欢在释放键时更新值的行为。如何在保持 keydown() 的同时即时更新?
var wordInput = '';
$('#input').keydown(function(event) {
var keycode = event.which;
switch(keycode) {
// Enter key
case 13:
console.log('Submit');
// Space key
case 32:
console.log('Space disabled');
break;
// Backspace
case 8:
// Subscract the last char
wordInput = wordInput.substr(0, wordInput.length - 1);
break;
// Any other key
default:
// If char limit not exceeded
if (wordInput.length < 20) {
wordInput += $('#input').val(); // Add the typed letter
}
}
// Update the word displayed
$('#story-input').html(wordInput);
// Clear the input
$('#input').val('');
});
在此处查看示例:http://jsfiddle.net/mqbxqLp7/
【问题讨论】:
标签: javascript jquery keydown