Вызвать клик по стрелкам input[type="number"]
Есть код
<input type="number" class="input-text" value="0" min="0" max=""> как вызвать клик по стрелкам внутри input нашел код такой: <button id="elem" onclick="alert('Клик');">Автоклик</button> <script> var event = new Event("click"); elem.dispatchEvent(event); </script> НО как его применить именно к стрелкам блока input? в jqvery есть событие .keyup (), но не как не могу разобраться можно ли его сюда применять и главное как? |
Цитата:
<input type="number" class="input-text" value="0" min="0" max="" id="input"> <span id="increment">Больше</span> <span id="decrement">Меньше</span> <script> (function() { const input = document.querySelector('#input'); [].forEach.call(document.querySelectorAll('#increment,#decrement'), function(node, i) { node.addEventListener('click', function() { const step = (input.step || 1) * (!i ? 1 : -1); let val = +input.value + step; if ('max' in input && input.max.length && val > input.max) val = input.max; else if ('min' in input && input.min.length && val < input.min) val = input.min; input.value = val; }); }); })(); </script> |
Цитата:
|
naplekov, зачем вам нажимать на стрелочки инпута?
|
naplekov,
тогда value меняйте <input type="number" class="input-text" value="0" min="0" max=""> <script> var inp = document.querySelector('.input-text') inp.value++; //или -- // если что то прязано // inp.dispatchEvent(new Event("change")); // или input </script> |
Цитата:
Цитата:
|
Цитата:
inp.dispatchEvent(new Event("input")); |
naplekov,
всякий раз когда будите менять value вызывайте событие //это inp.dispatchEvent(new Event("input")); //или это inp.dispatchEvent(new Event("change")); |
Цитата:
Цитата:
|
naplekov, полагаю это ваш "отзыв"?
Цитата:
Как альтернативу я вам предложил на странице разместить кастомные контроллеры, вам они не подошли. В текущей теме был решен вовсе не изначальный вопрос "как кликнуть по стрелочке", а "как изменить значение инпута и вызвать на нем соответствующие события", что совсем не одно и тоже. Не вижу причин для недовольства моим ответом, тем не менее, прошу прощения за подобный ответ. Всего наилучшего. |
Часовой пояс GMT +3, время: 19:10. |