cozy_eternity 0 Опубликовано: 27 декабря 2020 Жалоба Рассказать Опубликовано: 27 декабря 2020 Здравствуйте, у меня такая проблема, есть код, который увеличивает и уменьшает значение в input при нажатии определённой кнопки, вот только столкнулся с проблемой, если на уменьшение кнопка работает корректно, то кнопка, которая должна увеличивать, при нажатии просто делает значение максимальным. Не могу найти, где я ошибся, прошу помощи.. document.addEventListener('DOMContentLoaded', function () { if (document.querySelector('.number__but')) { let arrNuberCalc = document.querySelectorAll('.number__but'); for(let i = 0; i < arrNuberCalc.length; i++) { mycalc(arrNuberCalc[i]); } function mycalc(nuberCalc) { let numberDown = nuberCalc.querySelector('.number__down'), numberUp = nuberCalc.querySelector('.number__up'), numberInp = nuberCalc.querySelector('[type="number"]'), min = numberInp.getAttribute('min'), max = numberInp.getAttribute('max'), step = numberInp.getAttribute('step'); numberDown.addEventListener('click', function (e) { e = e || event; e.preventDefault(); numberInp.focus(); valueInp = numberInp.value || 0; if (!(min >= valueInp - step)) { numberInp.value = (valueInp - step); } else { numberInp.value = min; } }) numberUp.addEventListener('click', function (e) { e = e || event; e.preventDefault(); numberInp.focus(); valueInp = numberInp.value || 0; if (!(max <= valueInp + step)) { numberInp.value = (valueInp * 10 + step * 10) / 10; } else { numberInp.value = max; } }) } } }) Цитата Ссылка на сообщение Поделиться на других сайтах
Igor Schnaider 175 Опубликовано: 29 декабря 2020 Жалоба Рассказать Опубликовано: 29 декабря 2020 Вам нужно выложить код вместе с разметкой. И делайте это в песочнице, чем такой простыней. Быстрее помогут. Цитата Ссылка на сообщение Поделиться на других сайтах
Int 238 Опубликовано: 24 января Жалоба Рассказать Опубликовано: 24 января if (!(max <= valueInp + step)) А почему бы не писать это в виде max > valueInp + step? Я бы предложил добавить строку debugger внутрь обработчика клика и посмотреть на значения всех переменных if (!(min >= valueInp - step)) { numberInp.value = (valueInp - step); } else { numberInp.value = min }; А эту штуку можно записать как numberInp.value = Math.max(min, valueInp - step) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.