<script>
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();
}
</script>
我怀疑是: var k =事件? event.which:window.event.keyCode;
我对上述陈述感到困惑。有一点可以肯定的是,上述声明仅用于事件验证。我没有得到解释。任何人都可以帮助我找出上述声明的实际内容吗?仅在JAVASCRIPT
答案 0 :(得分:3)
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;
}
它将返回按下的键(整数值;键码)
答案 1 :(得分:1)
此语法:
expression ? value1 : value2;
被称为三元运算符。如果表达式为true,则返回value1,否则返回value2。在这种情况下,对象(事件)用作表达式,因此它将评估它是否存在(非空)。
答案 2 :(得分:1)
有些浏览器使用keyCode,其他浏览器则使用keyCode。 该指令仅用于跨浏览器问题,用于在按键和键盘事件期间检索关键代码
答案 3 :(得分:0)
event ? event.which : window.event.keyCode;
这是一个三元运营商。如果问号前面的东西是真的,或者&#34; truthy,&#34;它返回冒号前的表达式;如果它是假的或'假的,'#34;它返回后面的表达式。
如果event
被定义(即,它被传递到函数中),它将是&#34; truthy,&#34;这意味着即使它不是布尔类型,也可以作为布尔值进行求值。
这样做是检查event
是否已传入函数,并将k
设置为event.which
(导致事件的密钥代码),如果传入,或者来自全局window
事件的密钥代码,否则作为后备。