Как получить значение keypress из объекта события в jQuery
Я хочу отключить пользователей от ввода символа в поле ввода текста 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>
Ответы
Ответ 1
Вы можете использовать свойство "which" объекта события для захвата кода ключа. Вы можете использовать что-то вроде следующего кода, чтобы получить соответствующий символ -
var c = String.fromCharCode(e.which);
Подробнее см. ссылку http://api.jquery.com/keypress/.
Ответ 2
Когда пользователь нажимает клавишу, соответствующий код 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/
Ответ 3
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');
});
ПОПРОБУЙТЕ ЭТО ОДИН