Плагин jQuery Mask, изменяющий символы на знак минус

#html #jquery #maskedinput

#HTML #jquery #maskedinput

Вопрос:

У меня есть следующая программа для плагина маски jQuery:

 <!DOCTYPE html>
<html>
<head>
   <script src="https://code.jquery.com/jquery-3.5.1.min.js"
   integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
   crossorigin="anonymous"></script>
   <script src="./scripts/jquery.mask.js"></script>
   <script>
      // https://learn.jquery.com/using-jquery-core/document-ready/
      $(document).ready(
         function () {
            $("#ssnId").mask("999-99-9999");
         }
      );
   </script>
</head>
<body>
   SSN:<br />
   <input type="text" id="ssnId" name="ssn" />
</body>
</html>
  

Когда я заполняю текстовое поле SSN и ввожу тестовый шаблон, такой как

33y
33=
33(
33
или
33G
последний символ изменяется на минус, и
33—
становится результатом.
(Обратите внимание, что в конечном выводе есть два минуса)

Есть ли какой-нибудь способ заставить плагин jQuery Mask прекратить изменять последний символ моих тестовых шаблонов на «—«?

Примечания:

  1. Я использую версию v1.7.7 плагина jQuery Mask, найденного по адресуhttps://plugins .jquery.com/mask /
  2. Пожалуйста, воздержитесь от чтения лекций о лучших методах безопасности при обработке данных PII и SSN, поскольку я использую SSN только в качестве примера.

Ответ №1:

Попробуйте сделать так, чтобы ваша маска использовала # вместо 9

$(«#ssnId»).mask(«###-##-####»);

А также добавьте максимальную длину к входному тегу:

 <input type="text" id="ssnId" name="ssn" maxlength="11" />
  

 <!DOCTYPE html>
<html>
<head>
   <script src="https://code.jquery.com/jquery-3.5.1.min.js"
   integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
   crossorigin="anonymous"></script>
   <script src="https://cdn.jsdelivr.net/npm/jquery-mask-plugin@1.14.16/dist/jquery.mask.min.js"></script>
   <script>
      // https://learn.jquery.com/using-jquery-core/document-ready/
      $(document).ready(
         function () {
            $("#ssnId").mask("###-##-####");
         }
      );
   </script>
</head>
<body>
   SSN:<br />
   <input type="text" id="ssnId" name="ssn" maxlength="11" />
</body>
</html>