获取输入textarea框的最后两个字符的最佳方法是什么?
我需要输入最后两个字符,而不是整个字符串的最后两个字符。
感谢您的帮助!
答案 0 :(得分:6)
您需要捕获textarea上的keypress
事件,然后记录按下的键。请注意,这将捕获箭头键,shift,alt等,所以如果你只想要字符,你需要将它们过滤掉。
简单示例:
var keyPresses = [];
textarea.onkeypress = function(ev){
ev = ev || window.event;
var key = ev.keyCode || ev.which;
keyPresses.push(key);
}
答案 1 :(得分:2)
以下是使用jQuery进行演示的演示,同时显示输入的最后两个字符:http://jsfiddle.net/Ender/5gUHb/
来源:
var keys = [];
$('#target').keypress(function(e) {
keys.unshift(e.which);
update();
});
function update() {
$('#last')
.prepend($('<li/>').text(String.fromCharCode(keys[0])))
.children(':eq(2)').remove();
}
此演示捕获文本区域上的按键事件,将值移至数组上(因为索引代表自按下该键以来按下的键数),然后更新显示。
显示更新只是将数组中的第一个值推送到<ul>
的顶部,并删除列表中索引2处的子项(如果有)。
另外请注意,由于jQuery处理 .keypress()
的方式,您不必过滤掉修饰符或箭头键。
<强>更新强> 请参阅Tim Down对我的回答的评论,以解释应该进行哪些过滤。根据Chrome中的快速测试,我最初的注意事项是错误的。