javascript事件的问题.只提供大写字符
Issue with javascript event.which give characters in upper case only
我写了一段javascript代码,在文本区域内按键。我使用onkeydown事件来捕捉按下的键,并在事件触发时调用函数。在函数中,我使用event.来按键。但这并没有给出正确的按键。对于按下的任何字符,它会给出相应大写字符的Ascii值(仅限65到90)。即使键入了小写字符,它也不会为小写字符(即97到122)提供Ascii值。例如-如果我键入"a",它会给出"a"的Ascii值有人知道为什么会发生这种事吗?这是我正在使用的代码-
var mainDoc = document.getElementById("mainDoc");
mainDoc.onkeydown = function(event){keyPress(event);}
function keyPress(event)
{
alert("key code : "+ event.which + " );
}
我尝试使用onkeypress事件。这似乎工作得很好,但它不会捕获alt、control、箭头键等。
keydown
和keyup
(大部分)根本不给您字符,它们给您键代码。keypress
是获取字符的位置(如果需要,还可以知道在事件对象的ctrlKey
、altKey
、shiftKey
和metaKey
属性上键入该字符时修改键的状态)。这个页面进入了疯狂的JavaScript键盘事件的爱的细节。。。
问题是keydown
事件将报告按键,即物理按键按下。keypress
事件将报告转换的键,这意味着从按下的键派生的字符(Shift+a==A
)。为了获得实际的键,您可能需要同时跟踪keydown
/keyup
(用于监视修改键)和keypress
(用于监视实际的字母数字用户输入)。
来源http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx
为了理解keydown和keypress之间的区别有助于理解"字符"answers"键"。"键"是计算机键盘上的物理按钮,而"字符"是通过按下按钮键入的符号。理论上keydown和keyup事件表示按键被按下或释放,而按键事件表示正在键入的字符。这个该理论的实现并非在所有浏览器中都是一样的。
function getKeyCode(event) {
event = event || window.event;
return event.keyCode;
}
使用event.keyCode将为u提供keyCode;)
g.r.
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 将具有特殊字符的值传递给函数onclick事件
- 限制用户使用按键事件 injQuery 复制和粘贴声明为数字文本框的文本框中的字符
- 使用dojo按键事件时无法避免最后一个字符输入
- 按键时的Javascript事件,但在输入字符之后
- 使用 OnChange 事件更新状态具有延迟字符
- 文本框事件中的第三个字符
- 如何在文本框点击事件中设置文本框中字符的第一个位置---Chrome问题
- 如何仅允许特定打印范围的按键事件中的字符
- onchange 事件更新状态,延迟为 1 个字符
- 在键按下事件上计算文本字段中的字符数
- 如何在输入至少 3 个字符后触发事件键下
- 如何使用 Keydown 事件在多种语言/键盘布局中获取正确的字符
- “键下”事件:找到本来可以输入的字符,如果 shift 也被按下
- range.toString()截断javascript按键事件中的最后一个字符
- 关注keydown事件后的字段,不插入字符
- javascript事件的问题.只提供大写字符
- 键盘事件、字符计数器和textLength道具困境
- Javascript事件按键检查字符代码
- 在键盘上获得正确的字符事件