JavaScript键码在Firefox中不起作用
我使用的是JavaScript键码,它们不是在Firefox中工作,而是在Chrome和IE中工作。我已经调试了Firefox前端的代码,我得到的键码是JavaScript键码在Firefox中不起作用,javascript,angularjs,firefox,Javascript,Angularjs,Firefox,我使用的是JavaScript键码,它们不是在Firefox中工作,而是在Chrome和IE中工作。我已经调试了Firefox前端的代码,我得到的键码是0 这是我的代码: $scope.Validate = function(event,indexVal){ if ((event.keyCode > 64 && event.keyCode < 91)|| (event.keyCode > 159 && event.keyCode <
0
这是我的代码:
$scope.Validate = function(event,indexVal){
if ((event.keyCode > 64 && event.keyCode < 91)|| (event.keyCode > 159 && event.keyCode < 166) || (event.keyCode > 96 && event.keyCode < 123) || (event.keyCode == 165) ||(event.keyCode == 32)
|| (event.keyCode == 164) || (event.keyCode == 130) || (event.keyCode == 181) || (event.keyCode == 144) || (event.keyCode == 214) ||
(event.keyCode == 224) ||(event.keyCode == 233)) {
}else{
event.preventDefault();
}
}
$scope.Validate=函数(事件,indexVal){
如果((event.keyCode>64&&event.keyCode<91)|(event.keyCode>159&&event.keyCode<166)|(event.keyCode>96&&event.keyCode<123)|(event.keyCode==165)|(event.keyCode==32)
||(event.keyCode==164)| |(event.keyCode==130)| |(event.keyCode==181)| |(event.keyCode==144)| |(event.keyCode==214)||
(event.keyCode==224)| |(event.keyCode==233)){
}否则{
event.preventDefault();
}
}
你能推荐一种在Firefox中实现这一功能的方法吗?它可以工作,但略有不同
$scope.Validate = function (event, indexVal) {
var code = event.which || event.keyCode;
if (!(
(code > 64 && code < 91)
|| (code > 159 && code < 166)
|| (code > 96 && code < 123)
|| ~[165, 32, 164, 130, 181, 144, 214, 224, 233].indexOf(code)
)) {
event.preventDefault();
}
}
$scope.Validate=函数(事件,indexVal){
var代码=event.which | | event.keyCode;
如果((
(代码>64&&代码<91)
||(代码>159和代码<166)
||(代码>96&&代码<123)
||[165,32,164,130,181,144,214,224,233].indexOf(代码)
)) {
event.preventDefault();
}
}
已弃用KeyboardEvent.keyCode
此功能已从Web标准中删除。尽管某些浏览器可能仍然支持它,但它正在被删除。避免使用,并尽可能更新现有代码;请参阅本页底部的兼容性表以指导您的决策。请注意,此功能可能随时停止工作
在Firefox中,
event.keyCode
并不总是有效,这取决于绑定事件。您必须使用event.which
。有关更多信息,请参阅此
$scope.Validate = function(event,indexVal) {
var key = event.keyCode || event.which;
if ((key > 64 && key < 91) ||
(key > 159 && key < 166) ||
(key > 96 && key < 123) ||
(key == 165) ||
(key == 32) ||
(key == 37) ||
(key == 39) ||
(key == 164) ||
(key == 130) ||
(key == 181) ||
(key == 144) ||
(key == 214) ||
(key == 224) ||
(key == 233)
) {
// Do something.
} else {
event.preventDefault();
}
}
$scope.Validate=函数(事件,indexVal){
var key=event.keyCode | | event.which;
如果((键>64&&键<91)|
(钥匙>159和钥匙<166)|
(键>96和键<123)|
(键==165)||
(键==32)||
(键==37)||
(键==39)||
(键==164)|
(键==130)|
(键==181)|
(键==144)|
(键==214)||
(键==224)||
(键==233)
) {
//做点什么。
}否则{
event.preventDefault();
}
}
var keyCode=event.which | | event.keyCode
@ArunPJohny您能再解释一下吗please@JaromandaX是的,它在nice的两个可能的副本中工作让我尝试一次$scope.Validate=函数(event,indexVal){}我需要将此事件和indexVal传递给此函数吗事件
就足够了;但是,可能出于其他验证目的,也将使用indexVal
,仅供参考:KeyboardEvent。它在MDN上也标记为@Murali,它不会有任何区别。。。但我已经更新了答案。如前所述,如果未使用indexVal
,只需将其从作用域中删除即可,但如何允许Mozilla中的左箭头键和右箭头键的键代码分别为37到40(左、上、右、下)。因此,您必须将它们添加到您的条件中。在chrome中,默认情况下接受。但即使我保持37,它也不允许使用箭头。它就像ASCII不是键码一样工作!键码是键盘上键的数字表示形式,而ASCII是特定字符的数字表示形式。