Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Фильтр. Допускаются только цифры. (https://javascript.ru/forum/dom-window/6544-filtr-dopuskayutsya-tolko-cifry.html)

балерун 04.12.2009 13:08

Фильтр. Допускаются только цифры.
 
:dance: есть окошко, в которое можно вводить только цифры. как сделать фильтр, который будет запрещать ввод всех данных кроме цифр.

и сразу второй вопрос, если пользователь идиот и решил таки ввести не цифры, то как потом с помощью JS проверить нет ли там других символов кроме цифр?:blink:

subzey 04.12.2009 13:14

if (/^d*$/.test(inputObject.value)){
alert('Тут не только цифры').
}

Кстати, Opera уже умеет
<input type="number" />
, грех этим не воспользоваться. :)

Да, и кстати, это, конечно, дело каждого, но пользователя нельзя считать априори идиотом. Например, "1.2E6" будет валидным числом, хотя и не состоит только из цифр. А если Вы ожидаете, скажем, номер телефона, то пользователь может просто скопировать-вставить его, с дефисами, пробелами и скобками.

балерун 04.12.2009 14:37

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

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

Riim 04.12.2009 14:50

Он цифры словами напишет. На китайском.

балерун 04.12.2009 15:41

тоже вар :-)

B~Vladi 07.12.2009 23:01

Обычно делают так: по onblur отсылают запрос на сервер и, в случае чё выводят сообщение.

В любом случае сервер будет это обрабатывать, а послать буквы - дело 3 секунд:)

Gvozd 07.12.2009 23:07

если это не проверка валидности мыла, или отсутствия ника в базе, то незачем посылать запрос на сервер
масштабируемое приложение на вашей логике не построишь

B~Vladi 07.12.2009 23:11

Цитата:

Сообщение от Gvozd
масштабируемое приложение на вашей логике не построишь

Да что ты говоришь:)

Цитата:

Сообщение от Gvozd
если это не проверка валидности мыла, или отсутствия ника в базе

Речь о цифрах:)

Gvozd 07.12.2009 23:25

Цитата:

Сообщение от B~Vladi
Речь о цифрах

именно же
зачем дергать для этого сервак?

B~Vladi 07.12.2009 23:26

Gvozd, по-твоему не надо проверять все поля формы?!

Gvozd 07.12.2009 23:45

я что не по-русски пишу?
я говорю о том, что нету необходимости для данного случая в частности, и в общем случае для большинства полей(кроме логина и мыла к примеру) делать проверку через Ajax на сервере
те поля которые можно проверить исключительно клиентскими силами, именно так и надо проверять, не посылая запрос на сервер во время работы пользователя с формой
естественно что при сабмите всей формы надо все арвно проверить все поля, уже серверными силами, но до этого его кантовать незачем

dma84 11.12.2009 16:12

Подключение:
onkeypress="return checkNumber()"

Код:
function checkNumber(event)
     {
      event = (event)?event:window.event;
      var code = (event.charCode) ? event.charCode : event.keyCode;
      var el = event.target || event.srcElement;
      if((code >=48 && code <=57) || (code >= 8 && code <= 32) || (code >= 37 && code <= 40)) return true
      else return false
     }

Остаётся только проверять данные из буфера при вставке


Часовой пояс GMT +3, время: 02:39.