Я использую 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>