function AvoidSpace(event) {
var k = event ? event.which : window.event.keyCode;
if (k >= 42 && k <= 57 || k == 32 || k == 61 || k == 13) return false;
}
function ExceptNumber(event) {
var k = event ? event.which : window.event.keyCode;
if (k >= 0 && k <= 47 || k >= 58 && k <= 122) return false;
}
function NumChar(event) {
var k = event ? event.which : window.event.keyCode;
if (k >= 0 && k <= 31 || k >= 33 && k <= 64 || k >= 91 && k <= 96) return false;
}
function clearFunction() {
document.getElementById('register').reset();
}
我的疑问是: var k = 事件 ? event.which : window.event.keyCode;
我对上面的说法感到困惑。有一点可以肯定的是,上述声明仅用于事件验证。我没有得到解释。任何人都可以帮我找出上述声明的实际作用吗?仅寻求
JAVASCRIPT
的简短解释
k = event ? event.which : window.event.keyCode
意味着
if you passed event variable to function use it; Else - use global event
它是三元运算符,可以扩展到
if (event == true) {
k = event.which;
} else {
k = window.event.keyCode;
}
它将返回按下的键(整数值;键代码)
这个语法:
expression ? value1 : value2;
被称为三元运算符。 如果表达式为 true,则返回 value1,否则返回 value2。 在这种情况下,一个对象(事件)被用作表达式,因此它将评估它是否存在(不为空)。
一些浏览器使用 keyCode,其他浏览器则使用 which。 该指令仅适用于跨浏览器问题,用于在按键和按键事件期间检索按键代码
event ? event.which : window.event.keyCode;
这是一个三元运算符。如果问号之前的内容为真或“真实”,则返回冒号之前的表达式;如果为 false 或“falsey”,则返回后面的表达式。
如果
event
被定义(即,它被传递到函数中),它将是“true”,这意味着如果计算为布尔值,即使它不是布尔类型,它也是 true。
因此,它的作用是检查
event
是否已传递到函数中,如果已传递,则将 k
设置为 event.which
(引发事件的关键代码),或者设置为全局中的关键代码否则,将 window
事件作为后备。