JavaScript按键代码
|
我正在使用我未编写的JavaScript例程。从文本框的“ 0”属性中调用该属性,以防止不必要的击键。
第一个参数显然未使用。第二个参数是应允许的字符列表。
function RestrictChars(evt, chars) {
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
if ((key == null) || (key == 0) || (key == 8) ||
(key == 9) || (key == 13) || (key == 27))
// Control key
return true;
else if (((chars).indexOf(keychar) > -1))
return true;
else
return false;
}
这似乎适用于字母数字字符。但是,即使chars
参数中包含这些字符,诸如.
和/
之类的字符也会使此函数返回false
。例如,如果按.
键,则key
设置为190,而keychar
设置为\“ 3/4 \”字符。
谁能看到它是如何工作的和/或为什么不起作用?我对JavaScript知之甚少,无法了解它的作用。
没有找到相关结果
已邀请:
2 个回复
甲车劲
事件而不是
,因为这是唯一告诉您有关实际键入字符的可靠信息的事件。有关(通常)有关此事件和JavaScript键事件的更多信息,请参见http://unixpapa.com/js/key.html。其次,有一个名为
的变量的引用,该变量不(但应)与(12ѭ参数相对应。 假设您有一个名为
的变量,它引用了文本输入元素,这是一个重写。 jsFiddle:http://jsfiddle.net/9DZwL/ 码:
捐焦
这将检查密钥是否为可打印字符(字母,标点符号等)。
上面检查键是否为空OR(
)`0或8(退格键)或9(制表符)或13(0x0D或ENTER)或27(0x1B或ESCAPE)-正是布尔结果您期望:如果
这将检查
是否在作为
参数传递的字符串中