我使用的是JavaScript密钥代码,但它们不适用于Firefox,而是使用Chrome和IE浏览器。我在Firefox的前端调试了代码我得到的密钥代码为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();
}
}
您能否建议一种在Firefox中实现此功能的方法。
答案 0 :(得分:0)
它工作但略有不同
$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();
}
}
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
已弃用
KeyboardEvent.keyCode
此功能已从Web标准中删除。虽然有些浏览器可能仍然支持它,但它正在被删除。避免使用它并尽可能更新现有代码;请参阅本页底部的兼容性表,以指导您的决定。请注意,此功能可能随时停止工作。
答案 1 :(得分:0)
在Firefox中,event.keyCode
并不总是有效,具体取决于绑定事件。您必须使用event.which
。有关详细信息,请参阅此post。
$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();
}
}