Как стать автором
Обновить

Как определить регистр символа (Caps Lock)

На днях столкнулся с задачей по оповещении пользователя при вводе пароля о том, что он вводит символы в верхнем регистре. Забыл отключить «Caps Lock», или так задумано, для меня не важно — мое дело напомнить ему об этом.

В ходе написание скрипта были учтены непереводимые в регистр символы, цифры, пробел. При определении ввода верхнего регистра проверяю последний введенный символ.

Функция, которая принимает объект и уже на типу объекта, берет значение для проверки:

/** 
* return boolean
* true - using Caps Lock
* false - not using Caps Lock
**/
function checkingUp(_obj){

    var symbol = '';
    var type = _obj[0].tagName;

    switch(type)
    {
        case "INPUT" :
            symbol = String(_obj.val());
                break;
    }

    if(symbol == ''){
        return false;
    }        

    symbol = symbol.substr(symbol.length - 1, (symbol.length));        

    if($.isNumeric(symbol)){
        return false;    
    }

    var newSymbol = symbol.toLowerCase();

    if(symbol != newSymbol){
        return true;    
    }

    return false;

}


Функция принимает String значение для проверки:

function checkingUp(_obj){

    var symbol =String( _obj);

    if(symbol == ''){
        return false;
    }        

    symbol = symbol.substr(symbol.length - 1, (symbol.length));        

    if($.isNumeric(symbol)){
        return false;    
    }

    var newSymbol = symbol.toLowerCase();

    if(symbol != newSymbol){
        return true;    
    }

    return false;

}

И под конец источник вызова функции. Немного кода, в котором при обходе полей проверяются их тип на «password» и при вводе текста осуществляется проверка на вводимую информацию.

    $("#login-form input[type=password]").each(function(){

        // после поля ввода пароля расположен span с логотипом капчи, скрытый стилями css
        var iconCapsLock = $(this).parent().find('.capslock');

        $(this).bind('keyup', function(){

             if(checkingUp($(this))){
                iconCapsLock.show();
             }
             else{
                iconCapsLock.hide();
             }
        });

        $(this).bind('blur', function(){
            iconCapsLock.hide();
        });

});
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.