#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 прекратить изменять последний символ моих тестовых шаблонов на «—«?
Примечания:
- Я использую версию v1.7.7 плагина jQuery Mask, найденного по адресуhttps://plugins .jquery.com/mask /
- Пожалуйста, воздержитесь от чтения лекций о лучших методах безопасности при обработке данных 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>