Почему Jquery Mask Plugin изменяет результат при использовании QR Code Reader - PullRequest
0 голосов
/ 28 февраля 2020

Я использую Jquery Плагин Mask для маскировки числа с именем RA, которое выглядит как 123.456.789-0, оно работает, но когда я использую одно из этих считывателей QR / Barcode, оно просто меняет значение на 124.568.907- 3, см. Код ниже, в котором есть два поля ввода, одно с маской и одно без, другое без работает с правильным номером. Также читатель, по-видимому, отправляет Enter в конце, поэтому я настроил форму, чтобы поймать это.

(function($) {
  const raMaskBehavior = (val) => {
      return val.replace(/\D/g, '').length === 10 ? '000.000.000-0' : '00.000.000-09';
    },
    raMaskOptions = {
      placeholder: '00.000.000-0',
      onKeyPress: (val, e, field, options) => field.mask(raMaskBehavior(val), options)
    };
  const maskRa = () => $('.number').mask(raMaskBehavior, raMaskOptions);

  setInterval(() => {
    maskRa();
  }, 1000);
})(jQuery);

$().ready(() => {
  $('#form').submit(e => {
    e.preventDefault();
    alert($('#ra').val());
  });
  $('#form2').submit(e => {
    e.preventDefault();
    alert($('#ra2').val());
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>

<form id="form" action="#">
  <input type="text" class="number" id="ra" required />
  <input type="submit" value="Submit"/>
</form>
<form id="form2" action="#">
  <input type="text" id="ra2" required />
  <input type="submit" value="Submit"/>
</form>
...