Опять обращаюсь к вам со своими глупыми вопросами.
Как сделать так,что бы можно было ввести только цифры от 1 до 28 ?
<input name="konech" value="">
Спустя 1 минута, 46 секунд (17.02.2012 - 01:55) TMake написал(а):
js в помощь
Спустя 3 минуты, 14 секунд (17.02.2012 - 01:58) walerus написал(а):
stepan - Краткость, - сестра таланта
DarkGuy - По форуму поиск сделай, было уже решение не раз упомянуто.
DarkGuy - По форуму поиск сделай, было уже решение не раз упомянуто.
Спустя 2 минуты, 42 секунды (17.02.2012 - 02:01) TMake написал(а):
Цитата (walerus @ 17.02.2012 - 02:58) |
Краткость, - сестра таланта |
какой вопрос - такой ответ
Спустя 9 часов, 57 минут, 23 секунды (17.02.2012 - 11:58) nugle написал(а):
Попробуй так
if(!preg_match('#^([1-9]{1}|1{1}[0-9]{1}|2{1}[0-8]{1})$#', $var))
echo 'Можно вводить только числа от 1 до 28';
Спустя 35 минут, 10 секунд (17.02.2012 - 12:33) ADiel написал(а):
Цифры бывают от 0 до 9 или я не прав?
Нужен яваскрипт на клиентской стороне, но без проверки на сервере лучше не делать. nugle уже написал вариант серверной проверки.
Нужен яваскрипт на клиентской стороне, но без проверки на сервере лучше не делать. nugle уже написал вариант серверной проверки.
Спустя 2 минуты, 33 секунды (17.02.2012 - 12:36) inpost написал(а):
DarkGuy
onchange, onblur - условия для инпута. Так же условие для формы onsubmit надо ставить.
Функция проверяет регулярным выражением форму.
onchange, onblur - условия для инпута. Так же условие для формы onsubmit надо ставить.
Функция проверяет регулярным выражением форму.
Спустя 3 минуты, 27 секунд (17.02.2012 - 12:39) alexbel2404 написал(а):
на onkeyup/onchange повесить код, который будет проверять входит ли число в диапазон заданных, если нет, выводить сообщение или еще что-нибудь )
Спустя 53 секунды (17.02.2012 - 12:40) ADiel написал(а):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
<input name="konech" id="konech" value="" onchange="chkonech();" />
<script type="text/javascript">
var elem = document.getElementById("konech");
function chkonech() {
if (!elem.value.match(/^([1-9]{1}|1{1}[0-9]{1}|2{1}[0-8]{1})$/)){
alert('Можно вводить только числа от 1 до 28');
}
}
</script>
</body>
</html>
Спустя 1 час, 33 секунды (17.02.2012 - 13:41) inpost написал(а):
А ещё лучше:
parseInt, а потом if var<1 || var > 28
parseInt, а потом if var<1 || var > 28
Спустя 10 минут, 15 секунд (17.02.2012 - 13:51) ADiel написал(а):
Ну я сделал аналогично проверке, предложенной nugle
Спустя 4 минуты, 23 секунды (17.02.2012 - 13:55) inpost написал(а):
Очень сильно можно сократить код тем, что {1} -можно не указывать, то есть просто указанный символ уже подразумевает именно в одном экземпляре!
К тому же 08 - тоже число 8, а проверку не пройдет
15.5 - тоже входит в этот же диапазон.
К тому же 08 - тоже число 8, а проверку не пройдет
15.5 - тоже входит в этот же диапазон.
Спустя 1 час, 16 минут, 46 секунд (17.02.2012 - 15:12) nugle написал(а):
inpost
Сократил, но сути не меняет
Сократил, но сути не меняет
if(!preg_match('#^([1-9]|1[0-9]|2[0-8])$#', $var))
echo 'Можно вводить только числа от 1 до 28';
Цитата |
К тому же 08 - тоже число 8, а проверку не пройдет 15.5 - тоже входит в этот же диапазон. |
Я писал именно про целые числа, предложенный тобою вариант тоже не пройдет ;)
чтобы работали и числа с плавающей точкой, меняем на
if(!preg_match('#^((?:[1-9]|1[0-9]|2[0-8])\.?[\d]*)$#', $var))
echo 'Можно вводить только числа от 1 до 28';
Спустя 27 минут, 9 секунд (17.02.2012 - 15:39) inpost написал(а):
nugle
Чем не подойдет? parseInt преобразует 15.5 в 15, и будет в диапазоне. Соответственно 08 тоже станет цифро 8, тоже будет в диапазоне.
Чем не подойдет? parseInt преобразует 15.5 в 15, и будет в диапазоне. Соответственно 08 тоже станет цифро 8, тоже будет в диапазоне.
Спустя 4 минуты, 39 секунд (17.02.2012 - 15:44) nugle написал(а):
А как тебе такое решение?
if(!preg_match('#^((?:0*[1-9]|1[0-9]|2[0-8])\.?\d*)$#', $var))
echo 'Можно вводить только числа от 1 до 28';
Спустя 4 минуты, 46 секунд (17.02.2012 - 15:49) Игорь_Vasinsky написал(а):
а нафиг тогда регулярка, когда
а тут вообще двусмысленно
if((int)$var >=1 AND (int)$var <=28))
echo 'Можно вводить только числа от 1 до 28';
а тут вообще двусмысленно
Цитата |
ввести только цифры от 1 до 28 ? |
ввести - допустить ввод (тока JS)
или
ввести - допустить значение (php +-JS)
Спустя 3 минуты, 39 секунд (17.02.2012 - 15:52) nugle написал(а):
Игорь_Vasinsky
Для того чтобы, если вы с inpost'ом на пару введете - 22.f к примеру, у вам говорили, что Можно вводить только числа от 1 до 28
Для того чтобы, если вы с inpost'ом на пару введете - 22.f к примеру, у вам говорили, что Можно вводить только числа от 1 до 28
Спустя 1 минута, 25 секунд (17.02.2012 - 15:54) Игорь_Vasinsky написал(а):
а (int) - сделает из строки 0 - а ноль не прокатит
Спустя 2 минуты, 29 секунд (17.02.2012 - 15:56) nugle написал(а):
мда?
А если попробовать
А если попробовать
$var = '2f.f';
echo (int)$var;
Спустя 11 минут, 11 секунд (17.02.2012 - 16:07) inpost написал(а):
Точно.
(var == parseFloat(var) && parseFloat(var) >= 1 && parseFloat(var) <= 28)
Спустя 48 секунд (17.02.2012 - 16:08) inpost написал(а):
nugle, твоё решение тоже правильное
Спустя 1 минута, 7 секунд (17.02.2012 - 16:09) nugle написал(а):
inpost
и что это тебе даст? противоречишь сам себе, теперь проверка не пройдет на числа с плавающей точкой и с 08.
и что это тебе даст? противоречишь сам себе, теперь проверка не пройдет на числа с плавающей точкой и с 08.
Спустя 1 минута, 29 секунд (17.02.2012 - 16:11) inpost написал(а):
nugle
Я parseFloat хотел написать. Выше исправил
Я parseFloat хотел написать. Выше исправил
Спустя 5 минут, 22 секунды (17.02.2012 - 16:16) nugle написал(а):
inpost
осталось тебе с 08 решить проблему
осталось тебе с 08 решить проблему