С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 19.08.2017
Сообщений: 50

Как сделать сделать ввод чисел в Input формы строго по нужному диапазону?

08.11.2018, 04:06. Показов 4407. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые Коллеги!

У меня есть переменная JS с количеством товаров на складе
JavaScript
1
var tovar
И есть форма с числовым полем количества товара:
HTML5
1
2
3
4
5
6
7
8
9
10
11
<form action="http:test.php" method="post" name="testform" id="testform">
<small> Имя</small>
<input type="text" name="name" id="name" value=""  />
<small> Почта</small>
<input type="text" name="mail" id="email" value=""  />
 
<small> Укажите количество товара</small>
<input    type="number"   name="count" id="count"  value="1"  required="required" />
 
<input name="submit" type="submit" id="submit" value="Отправить" />
</form>
Подскажите пожалуйста, как сделать чтобы в поле input с id="count" был запрет на указания числа, которое больше чем количество товара на складе
JavaScript
1
var tovar
и если товар закончился
JavaScript
1
var tovar = 0;
- то при попытке отправить форму Alertом выводилось ТОВАР ЗАКОНЧИЛСЯ и был запрет на отправку.

Буду очень признателен за советы и примеры кода. С JS только начинаю работать ) С уважением, Александр!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2018, 04:06
Ответы с готовыми решениями:

Как сделать ввод элементов через input форму?
Нужна форма для ввода элементов массива, которая находит максимальный элемент массива. В общем,если открыть страницу эту, то в браузере...

Как отсортировать массив из структур по нужному параметру и диапазону индексов
Здравствуйте, подскажите как отсортировать массив из структур по нужному параметру и диапазону индексов. есть структура ...

Как сделать проверку на ввод чисел?
#include &lt;stdio.h&gt; int main() { int n; double P,s; s=1; while (scanf(&quot;%d&quot;,&amp;n)!=1) { printf(&quot;Error. Write a...

3
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
08.11.2018, 09:19
Лучший ответ Сообщение было отмечено cahe4a как решение

Решение

Самый простейший вариант. В учебных целях форма ничего не отправляет, только эмулирует отправку.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form action="javascript://return false;" method="post" name="testform" id="testform">
        <small> Имя</small>
        <input type="text" name="name" id="name" value="" />
        <small> Почта</small>
        <input type="text" name="mail" id="email" value="" />
 
        <small> Укажите количество товара</small>
        <input type="number" name="count" id="count" value="1" required="required" />
 
        <input name="submit" type="submit" id="submit" value="Отправить" />
    </form>
    <script>
        // Остаток получен из базы данных перед загрузкой страницы.
        // Отправка формы обновляет страницу.
        let tovar = 5;
        document.forms[0].onsubmit = e => {
            let requested = parseInt(document.getElementById("count").value, 10);
            if (!Number.isFinite(requested) || requested <= 0) {
                alert("Количество должно быть целым числом, большим 0.");
                return false;
            }
            if (tovar - requested < 0) {
                alert(`Заказываемое количество не должно превышать остаток ${tovar}.`);
                return false;
            }
            alert(`Спасибо за покупку! Заказано ${requested}.`);
        };
    </script>
</body>
</html>
0
2 / 2 / 0
Регистрация: 19.08.2017
Сообщений: 50
08.11.2018, 20:05  [ТС]
При отправке формы всё работает безупречно! А как сделать так, чтобы в реальном времени в поле Input не позволяло вводить число более чем переменная tovar. А если tovar =0; - то в Input должен быть неизменяемый ноль. Как-то может через атртибут MAX у Input

С уважением, Александр!
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
09.11.2018, 15:30
cahe4a,

HTML5
1
2
3
4
5
<input type=number 
       oninput=check(event) 
       onchange=check(event)  
       value=0
/>
JavaScript
1
2
3
4
5
6
7
8
9
10
var tovar = 5
function check(event) {
   var elem = event.target;
   var value = parseInt(elem.value, 10);
   var correctValue = Math.min(value, tovar);
   
   if(correctValue !== value) {
      elem.value = correctValue 
   }
}
Добавлено через 2 минуты
min и max будут работать только для ввода через стрелочки, вручную все равно можно ввести любое число
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2018, 15:30
Помогаю со студенческими работами здесь

Как на С сделать ввод чисел в Italic?
Write a C program that calculated the average of four numbers entered. Sample output (user entered data is italic). Enter...

Как сделать проверку на ввод чисел?
Т.е. есть поле, и нужно сделать такую проверку чтобы в это поле можно было вбивать только числовые значения. Может есть какой джава-скрипт...

Сделать ввод 2 целых чисел как диапазоном, и вывести потом сумму парных чисел этого же промежутка
Дано задачу в которой нужно сделать ввод 2 целых чисел как диапазоном, и вывести потом сумму парных чисел этого же промежутка(JavaScript) ...

Как сделать запрет на ввод в ячейку чисел
Сама задача сводится к тому, что при вводе в ячейку слова, во второй выводилось только первая и последняя буква. Это я сделал при помощи...

Как сделать ввод чисел в одну строку?
Как сделать ввод чисел в одну строку? CLS DIM A(i) INPUT “ Ввод чисел в строку: “; x1, x2, x3, x4 PRINT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru