Доброго времени суток.
Пытаюсь сделать, чтобы увеличивался шаг при увеличении значения. Написал такой обработчик события:
function get_step(value) {
if (value <= 999) {
return 100;
} else if (value <= 9999) {
return ((value - value % 1000) / 1000 + 1) * 100;
} else {
var length = value.toString().length;
return Math.floor(value / Math.pow(10, length - 1)) * Math.pow(10, length - 2)
}
}
$("#number").on('input', function(e) {
var value = $(this).val();
var step = get_step(value);
$(this).attr('step', step);
});
Первый шаг увеличивается нормально, но как только значение доходит до 2000 - первый шаг не обрабатывается (значение было 2000, должно стать 2300, так как шаг 300, но становится 2100). То есть, шаг прописывается в input, но первая обработка происходит неправильно.
Желающие могут поиграться тут:
https://jsfiddle.net/xpvt214o/887751/