Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ограничение максимального числа ввода (https://javascript.ru/forum/misc/30075-ogranichenie-maksimalnogo-chisla-vvoda.html)

amio 23.07.2012 13:51

Ограничение максимального числа ввода
 
Добрый день.

К сожалению не очень разбираюсь в JS, если точнее вообще два скрипта сделал за всю жизнь в связи с чем прошу помощи.

Как ограничить числа ввода(максимально и минимальное) в поле input ?

Параметры max, min в теге <input> не работают так как нужно, а появляются какие то стрелочки у поля, которые не дают ввести число выходящее за пределы диапазона(если вводить число стрелками вверх вниз), но просто с клавиатуры можно ввести любое число(

К сожалению не смог ничего найти поиском.

Заранее спасибо.

АлексТраст 23.07.2012 14:09

<input type="text" size=16 class="num_only" value="15" onkeyup="this.value=this.value.replace(/[^0-9]+/g,''); isright(this);">

function isright(obj)
{
if (obj.value>25) obj.value=25;  
if (obj.value<1) obj.value=1;
}


Вот так попробуйте.

amio 23.07.2012 14:12

Спасибо большое все работает

bot87 23.07.2012 18:07

http://htmlbook.ru/html/input/maxlength

bes 23.07.2012 18:31

bot87, ему другое нужно было.

Енот 22.02.2015 00:23

А у меня такой вопрос будет, а если мне не с 1 нужно а с 60 допустим и до 100?
Делаю так
function isright(obj)
{
if (obj.value>100) obj.value=100;
if (obj.value<60) obj.value=60;
}
<input type="text" size=16 class="num_only" value="70" onkeyup="this.value=this.value.replace(/[^0-9]+/g,''); isright(this);">
И что то не так...

danik.js 22.02.2015 06:09

<input type="number" min="60" max="100" value="60" />

Енот 22.02.2015 13:47

Цитата:

Сообщение от danik.js (Сообщение 357742)
<input type="number" min="60" max="100" value="60" />

Так не работает же...
Запросто могу ввести числа ниже 60 или больше 100
А нет, работает, это же HTML5, это все хорошо, но в данном примере можно вручную ввести в поле не нужное число.

рони 22.02.2015 17:59

Енот,
<script>
function isright(obj)
 {
 var value= +obj.value.replace(/\D/g,'')||0;
 if (value>100) value=100;
 if (value<60) value=60;
 obj.value = value
 }
</script>
 <input type="text" size=16 class="num_only" value="70" onblur="isright(this);" >

danik.js 22.02.2015 20:34

Одно другому не мешает ;)
<script>
function isright(obj)
 {
 var value= +obj.value.replace(/\D/g,'')||0;
 var min = +obj.getAttribute('min');
 var max = +obj.getAttribute('max');
 obj.value = Math.min(max, Math.max(min, value));
 }
</script>
 <input type="number" value="70" min="60" max="100" class="num_only" value="70" onchange="isright(this);" >


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