счетчик чисел jquery не работает с числами с плавающей точкой

#javascript #html #jquery #numbers

Вопрос:

У меня есть хороший счетчик чисел JQUERY, но он не вставляет поплавки, когда я даю запись по 0,01 цифры за раз. вот код: jquery в голове:

  <link rel="stylesheet" href="js/jquery.nice-number.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
   
  <script src="js/jquery.nice-number.js"></script>
 

ввод и хороший цифровой скрипт:

 <input type="number" value="1.0" name="qty" step="0.1" max="99999" min="0.1">
    <script>

        $(function () {

            $('input[type="number"]').niceNumber();

        });

    </script>
 

как я могу это решить?
Спасибо

Комментарии:

1. У вас есть источник для вашего jquery.nice-number.js ? Предпочтительно работающий CDN. Имеет ли это отношение к вашему вопросу или делает то же самое без него? (Правка: кажется, без этого все работает нормально)

Ответ №1:

Предполагая, что это от: https://github.com/joshua-s/jquery.nice-number

Быстрый взгляд на источник показывает:

 var newValue = currentValue   1;
 

таким образом, плагин nice-number жестко запрограммирован только для добавления/вычитания 1/-1

Это обеспечивает обратный вызов, поэтому вы можете изменить значение, но, возможно, лучше изменить nice-number.js для перехода на шаг приращения через настройки.

 $(function() {

  $('input[type="number"]').niceNumber({
    onDecrement: ($el, newValue, settings) => {
      $el.val(Math.round((newValue   0.9) * 100) / 100);
      console.log($el.val())
    },
    onIncrement: ($el, newValue, settings) => {
      //console.log($el.val())
      $el.val(Math.round((newValue - 0.9) * 100) / 100);
      console.log($el.val())
    }
  });

}); 
 <!--<link rel="stylesheet" href="js/jquery.nice-number.css">-->
<link ref="stylesheet" href="https://cdn.jsdelivr.net/npm/jquery.nice-number@2.1.0/dist/jquery.nice-number.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<!--<script src="js/jquery.nice-number.js"></script>-->
<script src="https://cdn.jsdelivr.net/npm/jquery.nice-number@2.1.0/dist/jquery.nice-number.js"></script>


<input type="number" value="1.0" name="qty" step="0.1" max="99999" min="0.1" style='width:200px;'> 

Комментарии:

1. есть ли способ, при котором я использую как первый тип, где шаг равен 1 цифре за раз, так и 0,1 цифре. может быть, нацеливание на ввод с определенным классом?

2. Вы можете вызвать .niceNumber отдельно для каждого ввода / группы типов ввода. $(".niceNumberInt").niceNumber(); $(".niceNumber1dp").niceNumber({onIncrement...