Суть скриптов, которые мы рассмотрим дальше, в том, чтобы на лету ловить действия посетителя и запретить ему вводить что попало в определенное поле, кроме цифр. То есть, когда курсор будет сфокусирован на поле, при попытке нажать на клавиатуре на буквы, в поле ничего не будет происходить, в то же время можно вводить цифры и некоторые символы, такие как + - () и тд, то что может понадобится для поля номер телефона или другого цифрового.
Для работы такого скрипта Вам понадобится в первую очередь само поле для ввода номера. Например у Вас есть поле внутри формы которое выглядит примерно так:
<input id="#tel" type="tel" name="tel" placeholder="Введите здесь ваш номер" >
Первый скрипт использует - jQuery, поэтому в шапку Вашего сайта перед закрывающимся head или в подвал перед закрывающимсяbody нужно добавить подключение библиотеки jQuery. Если Вы это делали или это делает система управлением сайтом (движок сайта), то делать этого не нужно. Можете посмотреть исходный код сайта и если где-то есть похожая строчка, то значит этот шаг нужно пропустить. Если же подключения нет, то нужно добавить вот такую строку:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
Теперь очередь самого скрипта. Его добавляем в отдельный файл и подключаем после библиотеки или же заключаем в теги:
<script type="text/javascript"> /// СЮДА КОД ... </script>
Ну и собственно сам код:
jQuery(document).ready(function($){ $.fn.forceNumbericOnly = function() { return this.each(function() { $(this).keydown(function(e) { var key = e.charCode || e.keyCode || 0; return ( key == 8 || key == 9 || key == 46 ||(key >= 37 && key <= 40) ||(key >= 48 && key <= 57) ||(key >= 96 && key <= 105) || key == 107 || key == 109 || key == 173|| key == 61 ); }); }); }; $('#tel').forceNumbericOnly(); });
Скрипт срабатывает на нажатие клавиш. В 8 строке задаются коды тех клавиш которые можно нажимать и значения которых появятся в поле ввода. Например, самый первый код - 8. Это код клавиши Backspace, то есть той что стирает написанное. Нужные коды можно посмотреть в таблице под статьей. В предпоследней строке указываем АЙДИ нужного поля ввода. В нашем случаи ID - #tel, в примере с полем ввода, это прекрасно видно.
Второй код выполнен в чистом javascript и немного отличается. Он разрешает вводить только цифры и backspace, enter, стрелочку назад, вперед. Конечно же Вы можете добавить новые коды для расширения возможностей. Айди нужного поля задается в первой строке. Ну и сам код собственно:
<script type="text/javascript"> document.getElementById("tel").onkeypress= function(event){ event= event || window.event; if (event.charCode && (event.charCode < 48 || event.charCode > 57)) return false; }; </script>
Лично я пользуюсь первым кодом, мне так удобнее. Какой выбрать Вам, решать тоже Вам.
На этом все, спасибо за внимание. 🙂
Таблица виртуальных кодов клавиш для javascript, которую обещал выше.
Клавиша
|
10-ный код
|
Клавиша
|
10-ный код
|
Backspace | 8 | ||
Tab | 9 | Enter | 13 |
Shift | 16 | Ctrl | 17 |
Alt | 18 | Pause | 19 |
CapsLock | 20 | Esc | 27 |
пробел | 32 | PageUp | 33 |
PageDown | 34 | End | 35 |
Home | 36 | стрелка влево | 37 |
стрелка вверх | 38 | стрелка вправо | 39 |
стрелка вниз | 40 | Insert | 45 |
Delete | 46 | 0 | 48 |
1 | 49 | 2 | 50 |
3 | 51 | 4 | 52 |
5 | 53 | 6 | 54 |
7 | 55 | 8 | 56 |
9 | 57 | A | 65 |
B | 66 | C | 67 |
D | 68 | E | 69 |
F | 70 | G | 71 |
H | 72 | I | 73 |
J | 74 | K | 75 |
L | 76 | M | 77 |
N | 78 | O | 79 |
P | 80 | Q | 81 |
R | 82 | S | 83 |
T | 84 | U | 85 |
V | 86 | W | 87 |
X | 88 | Y | 89 |
Z | 90 | левая клавиша Windows | 91 |
правая клавиша Windows | 92 | клавиша Applications | 93 |
NumPad 0 | 96 | NumPad 1 | 97 |
NumPad 2 | 98 | NumPad 3 | 99 |
NumPad 4 | 100 | NumPad 5 | 101 |
NumPad 6 | 102 | NumPad 7 | 103 |
NumPad 8 | 104 | NumPad 9 | 105 |
NumPad * | 106 | NumPad + | 107 |
NumPad - | 109 | NumPad . | 110 |
NumPad / | 111 | F1 | 112 |
F2 | 113 | F3 | 114 |
F4 | 115 | F5 | 116 |
F6 | 117 | F7 | 118 |
F8 | 119 | F9 | 120 |
F10 | 121 | F11 | 122 |
F12 | 123 | NumLock | 144 |
ScrollLock | 145 | PrintScreen | 154 |
Meta | 157 | ; | 186 |
= | 187 | , | 188 |
- | 189 | . | 190 |
/ | 191 | ~ | 192 |
[ | 219 | \ | 220 |
] | 221 | ' | 222 |