Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2011, 20:29
Интересующийся
Отправить личное сообщение для snizhok Посмотреть профиль Найти все сообщения от snizhok
 
Регистрация: 04.06.2011
Сообщений: 12

Как запретить ввод текста в input
Задача такая: Нужно запретить ввод любых символов кроме цыфр в поле ввода. Подскажите решение
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2011, 20:34
Интересующийся
Отправить личное сообщение для snizhok Посмотреть профиль Найти все сообщения от snizhok
 
Регистрация: 04.06.2011
Сообщений: 12

Нашел ответ:

<script>
function checkCurr(d) {
if(window.event)
{
if(event.keyCode == 37 || event.keyCode == 39) return;
}
d.value = d.value.replace(/\D/g,'');
}
</script>
<input type="text" onkeyup="checkCurr(this)">

может кому пригодится
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2011, 05:21
Интересующийся
Отправить личное сообщение для BoSO Посмотреть профиль Найти все сообщения от BoSO
 
Регистрация: 22.11.2011
Сообщений: 13

Такое решение вызывает перерисовку поля ввода, что кажется не очень эстетично. Как заблокировать ввод символов???
Ответить с цитированием
  #4 (permalink)  
Старый 27.11.2011, 11:12
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

в html5 у полей появился новый атрибут - pattern, значением которого является рега на JS.

введите НЕчисла и нажмите отправить.
<form>
<input pattern="\d+" maxlength="14">
<input type="submit" value="Отправить" name="numbers" title="Просто числа">
</form>
Ответить с цитированием
  #5 (permalink)  
Старый 27.11.2011, 12:28
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

есть много готовых решений на javascript
в поисковике поищите что-то вроде 'mask input jquery'
Ответить с цитированием
  #6 (permalink)  
Старый 27.11.2011, 14:02
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

melky, как-то мне не нравится такая реализация. Было бы намного прикольнее, если бы оно не позволяло вводить ничего, кроме чисел...

Но вообще - круто, конечно)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 27.11.2011, 18:32
Новичок на форуме
Отправить личное сообщение для Rionty Посмотреть профиль Найти все сообщения от Rionty
 
Регистрация: 27.11.2011
Сообщений: 3

я обычно делаю так, очень простой вариант.
код js
function proverka(input) { 
	input.value = input.value.replace(/[^\d]/g, '');
};

пример использования
<input type="text" name="summa" value="" size="40" onkeyup="return proverka(this);" onchange="return proverka(this);">
Ответить с цитированием
  #8 (permalink)  
Старый 27.11.2011, 19:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

/[^\d]/
маргинально)
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 27.11.2011, 19:19
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Rionty
я обычно делаю так, очень простой вариант.
Простой !== хороший. Регулярки - не самая быстрая часть js. Лучше так:
<input id="d-only">
<script>
document.getElementById("d-only").onkeypress= function(event){
 event= event || window.event;
 if (event.charCode && (event.charCode < 48 || event.charCode > 57))// проверка на event.charCode - чтобы пользователь мог нажать backspace, enter, стрелочку назад...
  return false;
};
</script>


P. S. Кстати, зачем у вас в атрибуте стоит return, если ф-ция proverka (кстати, пишите всё-таки check) ничего не возвращает?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 27.11.2011 в 19:21.
Ответить с цитированием
  #10 (permalink)  
Старый 27.11.2011, 20:17
Новичок на форуме
Отправить личное сообщение для Rionty Посмотреть профиль Найти все сообщения от Rionty
 
Регистрация: 27.11.2011
Сообщений: 3

мне мой вариант устраивает.но спорить не буду, возможно ваш вариант работает быстрее и лучше. Возьму на заметку.
про return согласен, это рудимент от каких-то испытаний остался=)
про check промолчу, дело каждого. будь моя воля я бы вообще всё на чистом русском писал. непонимаю, на самом деле таких гонений родного языка.
хотя зависит от проекта. для себя пишу proverka, для крупных написал бы CheckDigit или что-то в этом духе.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55
Как запретить submit при пустом текстовом поле? Bad Request Events/DOM/Window 5 05.10.2008 15:40
Как запретить уход из фрейма в top-окно? sturm Общие вопросы Javascript 6 20.04.2008 04:20
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55