Ограничение 3 цифры после десятичных знаков не работает, когда копировать вставить значение в поле ввода - PullRequest
0 голосов
/ 18 февраля 2020

Мне удалось ограничить 3 цифры после десятичных знаков, однако исправление не работает, когда я копирую, вставляю некоторые случайные десятичные цифры в текстовое поле.

$('.min-val').on('keyup', function(e) {
  $(this).val($(this).val().replace(/[^\d.]/g, ''));
  if ($(this).val().indexOf(".") > -1 && ($(this).val().split('.')[1].length > 3)) {
    $(this).val($(this).val().substring(0, $(this).val().length - 1));
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="min val" class="min-val" />

Как я могу ограничить десятичные цифры 3, даже когда я копирую, вставляю данные?

1 Ответ

1 голос
/ 18 февраля 2020

Вы можете достичь этого с помощью регулярного выражения. Я не очень хорош в этом, хотя.
Так что ниже обходные работы. Вы можете определить количество символов для обрезки и использовать это число
var charsToTrim = $(this).val().split('.')[1].length - 3;

$('.min-val').on('keyup', function(e) {
  $(this).val($(this).val().replace(/[^\d.]/g, ''));
  if ($(this).val().indexOf(".") > -1 && ($(this).val().split('.')[1].length > 3)) {
    var charsToTrim = $(this).val().split('.')[1].length - 3;
    $(this).val($(this).val().substring(0, $(this).val().length - charsToTrim));
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="min val" class="min-val" />
...