@vardoLP
Ват ю сэй эбаут май мама?!

Как проверить кратное значение в поле?

Всем привет.

Ребят, у меня есть поле с количеством товара. По умолчанию в нем стоит значение 1. Как правильно сделать проверку, чтобы кнопка заказа срабатывала, когда введено только 6, 12, 18 и т.д.
  • Вопрос задан
  • 77 просмотров
Решения вопроса 2
SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием
делить число на 2 и проверять есть ли остаток от деления (%)
https://learn.javascript.ru/operators#vzyatie-ostatka
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
const input = document.querySelector('input');
const button = document.querySelector('button');
const num = 6;

Блокируйте кнопку при вводе неправильных значений:

input.addEventListener('input', e => {
  button.disabled = e.target.value % num;
});

Или делайте проверку при клике:

button.addEventListener('click', () => {
  if (input.value % num) {
    alert('такого нам не надо, пробуй ещё');
  }
});

Или исправляйте введённые значения:

input.addEventListener('change', ({ target: t }) => {
  t.value = Math.max(0, (t.value / num | 0) * num);
});

Или не давайте вводить неправильные значения - заблокируйте инпут, изменение значения осуществляйте по кликам на кнопки рядом:

<button data-step="-1">-</button>
<button data-step="+1">+</button>

document.querySelectorAll('[data-step]').forEach(n => {
  n.addEventListener('click', onClick);
});

function onClick({ target: { dataset: { step } } }) {
  input.value = Math.max(0, +input.value + num * step);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
seganim
@seganim
PHP-программист, программный инженер
1. Проверка в HTML коде формы, добавить параметр step="6".

2. Проверка на стороне сервера передаваемой переменной, тут я думаю пояснения не нужны.

Думаю этих действий будет достаточно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект