Вызвать клик по стрелкам 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, время: 11:14. |