我对键盘事件感到有点失落。
我想检测最后输入的最后 10 个字符,return 作为最后一个字符。
知道如何实施吗?我不是要代码,而是要逻辑和指导方针。
Make an array and store all events in it, removing the front element when the length is > 10, and use that array when you get "return" as input.
Pseudocode:
var events = [];
function keypress(e) {
if(e == "return") {
console.log(events);
}
events.push(e);
if(events.length > 10) {
events.shift();
}
}
看到您正在使用 jQuery,您可以绑定到keyup
事件,然后在键入时将数据存储在数组中,类似于:
<input id="myText"></input>
var textString = [];
$('#myText').on('keyup', function(eventData){
if(eventData.which === 13){ // check if enter/return was pressed
// It wasn't clear what you wanted to happen exactly on enter,
// so as an example the code simply alerts the last 10 chars.
alert('Enter was pressed. Your last 10 chars were: ' + textString.join(''));
return;
}
textString.push(this.value.slice(-1)); // store last character type in the array
// if adding the last entry increased the array passed the 10 characters
// remove the one from the beginning of the array
if(textString.length > 10){
textString.shift();
}
})
DEMO - 绑定keup
事件并存储最后 10 个字符
当您要求使用 jQuery 时,上面的代码使用 jQuery 的on()绑定到指定输入元素的keyup事件。
一旦进入事件,代码将使用 JavaScript 的Array.push()将新元素添加到数组的末尾,并使用 JavaScript 的Array.shift()删除数组中的第一个元素。
为了获取最后输入的字符,代码使用 JavaScript 的String.slice()提取字符串的特定部分。
要将数组的值显示为警报中的字符串,代码使用 JavaScript 的Array.join()。
希望这可以帮助。
What you can do is to match the button you press with keycode, ie:
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
//Do something
}
With this code if someone press "enter" you can do something.
Check this to know all the possible keycodes: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
Hope it help.