@urajo

Как разбить по тысячам число которое выводится в инопут?

Библиотека noUiSlider
Пробовал сделать inputs[handle].value = new Intl.NumberFormat('ru-RU').format(parseInt(values[handle]));
Но в этом случае перестает работать изменение через инпут(если попытаться изменять значение например с 4000 на 6000, значение скидывается до первоначального т.е 4000, при этом если полностью удалить значение и написать новое - все отработает)
const rangeSliderInit = (item, start, min, max) => { // создаем функцию инициализации слайдера
    const range = item.querySelector('.filter__line'); // Ищем слайдер
    const inputMin = item.querySelector('.min'); // Ищем input с меньшим значнием
  
    if (!range || !inputMin) return // если этих элементов нет, прекращаем выполнение функции, чтобы не было ошибок
  
    const inputs = [inputMin]; // создаем массив из меньшего и большего значения
    
    noUiSlider.create(range, { // инициализируем слайдер
        start: start, // устанавливаем начальные значения
        behaviour: 'tap',
        connect: [true, false], // указываем что нужно показывать выбранный диапазон
        range: { // устанавливаем минимальное и максимальное значения
          'min': min,
          'max': max
        },
        step: 1, // шаг изменения значений
      }
    )
    
    range.noUiSlider.on('update', function (values, handle) { // при изменений положения элементов управления слайдера изменяем соответствующие значения
      // inputs[handle].value = new Intl.NumberFormat('ru-RU').format(parseInt(values[handle]));
      inputs[handle].value = parseInt(values[handle]);
    });
    
    inputMin.addEventListener('change', function () { // при изменении меньшего значения в input - меняем положение соответствующего элемента управления
      range.noUiSlider.set([this.value, null]);
    });
  }
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
В глубь не копал, судя по всему сбоила функция потому что начинало в неё передаваться не валидное значение, типа "5 0000", хотя должно быть либо "5 000" либо "50 000". Поэтому добавил вообще удаление всех пробелов до голых "50000" - чтоб дальше уже всё отработало.
- range.noUiSlider.set([this.value, null]);
+ range.noUiSlider.set([this.value.replace(/\s/g, ''), null]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы