2010-04-22 55 views
3

我最近试图在输入(文本)字段中镜像一些输入。 使用String.fromCharCode&CharacterSets

String.fromCharCode(event.which) 

例如,正确翻译所有'标准'字符。那么它将它们全部翻译成大写,但是您也可以通过查看shift键轻松捕捉它们。

我的问题是,它不能翻译像点,逗号,questionmarks等字符。 第一个猜测是,我必须定义一个字符编码集,但这似乎没有帮助。也许它完全关闭?

亲切的问候

--Andy

回答

5

我认为你正在使用的keyup或​​事件,在这些事件,你居然被压什么,而不是实际的字符,例如获得如果用户按aA,则将获得65作为关键代码。

你应该要想知道被按下的确切性质使用keypress事件,例如:

document.getElementById('inputId').onkeypress = function (e) { 
    e = e || window.event; 
    var keyCode = e.keyCode || e.which; 
    alert(keyCode); 
}; 

检查一个活生生的例子here

+0

@jAndy:如果它们是简单的文本字段,您可能还需要考虑将一个输入的整个值复制到另一个输入,[例如](http://jsbin.com/avuzi3/4)'$ ('#input1')。keyup(function(){$('#input2')。val(this.value);});' – CMS 2010-04-22 06:42:29

+0

请注意,在很多情况下这仍然不会给你插入字符。你会经常得到有效字符的'0',特殊键会被误报为与真正的char代码冲突的代码。 JavaScript中的整个关键处理事情几乎都是一场灾难。不要依赖它。 – bobince 2010-04-22 09:16:46

相关问题