|
|
|
| Здраствуйте, подскажите пожалуйста, как при помощи яваскрипта сделать, чтобы в поле(<input type=text>) можно было вводить только цифры. | |
|
|
|
|
|
|
|
для: Антоха
(30.10.2007 в 01:53)
| | Тут не регэксп нужен, а JS самый обычный. Ловишь событие onchange для этого поля, берешь последний символ из значения. Проверяешь его:
if(isNaN(val))
{послать подальше и ретурн false}
|
| |
|
|
|
|
|
|
|
для: SHAman
(30.10.2007 в 09:58)
| | А нет, все сложнее... Для этого элемента событие onchange наступает при потере фокуса, а не при наборе... Тогда нужно палить нажатие клавиш. Если нажата клавиша, и выделено нужное поле, то тогда проверять. Или как-то так. Ща попробую. | |
|
|
|
|
|
|
|
для: SHAman
(30.10.2007 в 09:58)
| | це из моего скрипта знакомств - поле для ввода возраста:
<div style="margin:7px">
<style>
.err{background-color:#FF0000}
</style>
<input onkeyup=ff2(this) type=text name=age size="2" maxlength="2" value="">
<script> ff2=function(t){ t.className=/\D/.test(t.value)?'err':''; if(/\D/.test(t.value)){t.value=t.defaultValue; if(self.ww)clearTimeout(ww); o=t; ww=setTimeout("o.className='';",999); }else t.defaultValue=t.value; }</script>
</div>
|
| |
|
|
|
|
|
|
|
для: provodnik
(30.10.2007 в 10:10)
| | Что-то очень хитрое... Даже сразу так затрудняюсь сказть что оно у вас делает:)
Вот то, что получилось у меня. Только работает оно пока ток в IE+ФФ(странно, да?). Ща буду дружить с Оперой.
<html>
<head>
<title>Вводятся только цифры</title>
</head>
<body>
<form>
<input type="text" name="digits" value="" id="digits"/>
</form>
<div id="console"></div>
<script language="javascript" type="text/javascript">
var d = document;
var digs = d.getElementById('digits');
var cons = d.getElementById('console');
digs.onkeydown = onlyDigits;
function onlyDigits(e) {
//для ие и оперы event, для ФФ - e
var ev = window.event ? event : e;
//получаем код клавиши
var code = ev.keyCode;
//получаем символ, соответствующий клавише
var keychar = String.fromCharCode(code);
//пишем на консоль
cons.innerHTML += keychar +" "+ code + "<br/>";
if (code >= 48 && code <= 57 || code==46 || code==8)
{
return true;
}
else
{return false;}
}
</script>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: SHAman
(30.10.2007 в 11:18)
| | Я ж привел и функцию и пример поля. Можно использовать. Нужно лишь изменить имя поля и вуаля... | |
|
|
|
|
|
|
|
для: provodnik
(30.10.2007 в 12:06)
| | На сколько я вижу от сюда, не разбираясь в коде, там юзается таймер и регулярки. А зачем? | |
|
|
|
|
|
|
|
для: SHAman
(30.10.2007 в 12:57)
| | Спасибо за ответы provodnik и SHaman
Второй вариант мне больше нравится, но т.к. не работает в опере, придется использовать первый от provodnik'a.
SHaman или кто-нибудь другой, если додумаетесь, как сделать , чтобы второй вариант работал еще и в опере, пожалуйства выложите (Просто именно его я и хотел использовать).
Пасибо. | |
|
|
|
|
|
|
|
для: Антоха
(30.10.2007 в 21:49)
| | Если честно, то мне просто лень дальше его ковырять. Погугли. Я видел несколько рабочих примеров, которые работали и в Опере. (правда, не работали в ФФ ;) ). Но все они не сложные, а значит, если разобраться, то можно и с оперой этот скрипт подружить. | |
|
|
|
|
|
|
|
для: SHAman
(31.10.2007 в 11:48)
| | Вот не понимаю я людей.
Чем не устраивает код, к-рый я привёл? Мультибросверность, подсветка, удаление нецифр...
Живой пример работы: http://sprosite.ru/love/ - (возрастные поля в форме поиска в знакомствах)
Есть поговорка - от добра добра не ищут... | |
|
|
|
|
|
|
|
для: provodnik
(01.11.2007 в 00:56)
| | Достаточно полю ввода прописать этого:
<input onkeypress="if(event.keyCode<48 || event.keyCode > 57)event.returnValue=false">
|
| |
|
|
|
|
|
|
|
для: provodnik
(01.11.2007 в 00:56)
| | Потому что этот код дерганый и изначально неверный. Проверка происходит по таймауту, а это уже плохо. Лучше просто запрещать вводить нецифры, чем каждый раз их удалять.
>>от добра добра не ищут...
совершенству нет предела! | |
|
|
|