jquery检测更多在后台输入的密钥,返回为最后一个密钥?

时间:2013-04-14 11:41:05

标签: jquery keystore

我觉得键盘事件有点迷失。

我想检测最后输入的10个字符作为最后一个字符。

知道如何实现它吗?我不是要求代码,而是要求逻辑和指导。

3 个答案:

答案 0 :(得分:3)

创建一个数组并将所有事件存储在其中,当长度为>时删除前面的元素。 10,当你输入“return”时使用那个数组。

伪代码:

var events = [];
function keypress(e) {
  if(e == "return") {
    console.log(events);
  }
  events.push(e);
  if(events.length > 10) {
    events.shift();
  }
}

答案 1 :(得分:1)

看到您正在使用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()

希望这有帮助。

答案 2 :(得分:0)

您可以做的是将您按下的按钮与键码匹配,即:

var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
   //Do something
}

使用此代码,如果有人按“输入”,您可以执行某些操作。

选中此项以了解所有可能的密钥代码:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

希望有所帮助。