Как получить значение нажатия клавиши из объекта события в jQuery - PullRequest
11 голосов
/ 17 мая 2009

Я хочу запретить пользователям вводить символ в поле ввода текста HTML, который не является буквой или цифрой.

Точную функцию можно увидеть на странице регистрации в Twitter (поле имени пользователя) https://twitter.com/signup.

Я пытаюсь написать это в jQuery. Но мне нужно иметь возможность получить входящее значение события нажатия клавиши, чтобы проверить, какая клавиша была нажата и приемлемо ли ее значение.

Вот код:

<input type="text" id="username" name="username" />

<script type="text/javascript">
$("#username").keypress(function(event){   

 // Get the keypress value
 // ...?

// If the keypress value is illegal then disable it
if (...){
   event.preventDefault();
}

});
</script>

Ответы [ 3 ]

33 голосов
/ 17 мая 2009

Вы можете использовать свойство which объекта события для захвата кода ключа. Вы можете использовать что-то вроде следующего кода, чтобы получить соответствующий символ -

var c = String.fromCharCode(e.which);

См. Ссылку http://api.jquery.com/keypress/ для подробного объяснения.

2 голосов
/ 17 мая 2009

Когда пользователь нажимает клавишу, соответствующий код ascii отправляется в событии. Используйте поле e.which

Так что ваше условие может выглядеть примерно так:

if ( e.which > 47 &&  e.which < 58)
{
    // it is a number
}

Есть много разных способов написать условное выражение. Возможно, используя сопоставление разрешенных символов в массив.

Для справки, Прописные буквы: 65 - 90 Строчные: 97 - 122

Вы должны понимать, что это заставит ваше приложение работать только для людей, которые печатают на английском языке, используя стандартный набор ASCII. Международные пользователи не смогут писать в вашем поле формы, потому что эти коды клавиш выходят за пределы стандартного диапазона ASCII и будут использовать другую кодировку. Просто кое-что рассмотреть.

Коды Ascii: http://www.petefreitag.com/cheatsheets/ascii-codes/

0 голосов
/ 08 сентября 2011
    var ako ='';
    var novalue = '';
    jQuery('html').keypress(function(event){
        var valuekey = event.charCode;
        ako = String.fromCharCode(event.which);
        jQuery('.a').each(function(){
            var cn = jQuery(this).html();
            if(ako == cn){
                jQuery(this).hide('explode',{},'10000').remove();
            }   
            novalue +=cn;
        });
        //alert(novalue);
        jQuery("#cn").animate({width:'400px',border:'1px solid pink'},'slow');
    });

ПОПРОБУЙТЕ ЕГО ОДИН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...