Сегодня хочу рассказать о фильтрации ввода символов с использованием мною любимого jQuery.
Итак, предположим, что вам необходимо ограничить пользователя в возможностях ввода символов в текстовое поле типа input или textarea.
Я покажу как это сделать на примере реализации 2-х наиболее часто используемых фильтров:
- разрешить вводить только цифры
- разрешить вводить только буквы и цыфры
Остальные возможные варианты по подобию сделать не тяжело
Начну сразу с примера, предпологается, что сам фрэймворк у нас уже подключен.
<script type="text/javascript">
$(document).ready(function(){
$('input.num_only').keypress( function(e) {
if($.browser.msie)
return isNum(e.keyCode)
else
return (e.keyCode) ? true : isNum(e.charCode)
});
function isNum(cCode){
return /[0-9@\.]/.test(String.fromCharCode(cCode))
}
});</script>
<input class="num_only" type="text" value="" />
В данном случае мы в поля с классом num_only сможем вводить только цифры за это отвечает функция isNum, именно она согласно указанному регулярному выражению (/[0-9@\.]/) фильтрует поле.
Для запрета ввода всего кроме латинских буков и цифер мы это самое регулярное выражение подменим на /[[A-Z][a-z]0-9@\.]/
<script type="text/javascript">
$(document).ready(function(){
$('input.numandlat').keypress( function(e) {
if($.browser.msie)
return isNumandlat(e.keyCode)
else
return (e.keyCode) ? true : isNumandlat(e.charCode)
});
function isNumandlat(cCode){
return /[[A-Z][a-z]0-9@\.]/.test(String.fromCharCode(cCode))
}
});</script>
<input class="numandlat_only" type="text" value="" />