JavaScript-----判断Caps Lock是否开启

来源:互联网 发布:诺基亚衰落的原因知乎 编辑:程序博客网 时间:2024/05/17 05:02
$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>

0 0
原创粉丝点击