$scope.capsLockState = ''; // Caps Lock状态(空为未确认,on为打开CapsLock,off为CapsLock关闭)
$scope.checkCapsLock = function(event) {
var keyCode = event.keyCode || event.which;
var isShift = event.shiftKey || (keyCode == 16) || false;
var c1 = (keyCode >= 65 && keyCode <= 90) && ! isShift; // Caps Lock 打开,且没有按住shift键
var c2 = (keyCode >= 97 && keyCode <= 122) && isShift; // Caps Lock 打开,且按住shift键
var c3 = (keyCode >= 65 && keyCode <= 90) && isShift; // Caps Lock 关闭,且按住shift键
var c4 = (keyCode >= 97 && keyCode <= 122) && ! isShift; // Caps Lock 关闭,且没有按住shift键
if (c1 || c2) {
$scope.capsLockState = 'on';
}
if (c3 || c4) {
$scope.capsLockState = 'off';
}
};
$scope.checkCapsLockKeyUp = function(event) {
var e = event || window.event;
if (e.keyCode == 20 && $scope.capsLockState != '') {
if ($scope.capsLockState == 'on') {
$scope.capsLockState = 'off';
} else {
$scope.capsLockState = 'on';
}
}
};
<input type="password" ng-keypress="checkCapsLock($event);" ng-keyup="checkCapsLockKeyUp($event);">
<div ng-show="passwordHasFocus && capsLockState == 'on'">
大写已开启
</div>