【发布时间】:2014-05-05 15:24:03
【问题描述】:
我有一个文本字段,我正在检测这样的每个按键:
document.getElementById("postcardText").addEventListener('keyup', checkInput, false);
在我的 checkInput 函数中,我只检查我希望用户添加的字母。到目前为止它工作正常,问题是如果用户按下 shift 按钮,例如shift+A 写一个大写字母 A 检测到 2 个键位并添加 A 两次。 任何人都可以提出解决方法吗?
编辑: 这似乎可以完成这项工作:
var shiftKey=false;
$(document).keyup(function (e) {
if (e.keyCode == 16) {
//alert("Shift was pressed");
shiftKey=true;
} else{
shiftKey=false;
checkInput();
}
});
然后在我的 if 语句中是这样的
function checkInput(){
if (character=="A" ||
character=="B" &&
shiftKey==false){
//adding letter-image here
}
}
我必须将 keydown 更改为 keyup,否则它不会立即检测到第一个字符,而只会在按下下一个键时检测到。
【问题讨论】:
-
您到底想完成什么?您是否试图以某种方式操纵文本字段的内容?如果用户输入特定字符,您是否会触发其他功能?根据您要完成的工作,也许您应该从每个按键的文本字段中读取当前数据,而不是尝试识别每个用户按键的意图。
-
基本上这是一个将输入文本转换为彩色图像的“机器”。所以每个字母都有一个代表它的图像。我希望用户在写作时已经看到它的样子。我在每个键盘上读取文本字段的数据,然后将最后一个字母作为图像添加到我的大图像中。但是换档按钮会干扰事情......所以这就是我识别它的原因......
-
如果有更简单的方法,请告诉我!
标签: javascript validation input textfield