Просмотр полной версии : Как сделать чтобы значенрие input состояло только из определенного количества цифр?
Всем привет, подскажите, пожалуйста как сделать чтобы значение input состояло только из определенного количества цифр (в моем случае тринадцать)?
value должен состоять ровно из 13 цифр. UI не должен давать вводить что-то отличное от цифр.
Необходима валидация именно не javascript.
Необходима валидация именно не javascript.
:-?
Тут 2 пути, и оба со своими плюсами и минусами:
1. Дать ввести человеку что угодно, и onchage проверять введеное, если не нравиться - заставить человека исправить данные. Это самый простой путь.
2. Создать полностью свой элемент input, где будете перехватывать все обращения к клавиатуре и мышке и тачу и еще неизвестным hid, и создавать таким образом свой собственный редактор строки. Это очень громоздко, но будет работать именно так, как Вам нужно.
Так что с учетом затрат, определитесь в необходимом и достаточном конечном результате. ;)
Для поля maxlength="13" и установить обработчик для oninput, где удалять не цифровой ввод.
Dilettante_Pro
27.06.2019, 17:42
<input id="inp">
<input placeholder= "next field">
<script>
inp.oninput = function() {
this.value = this.value.replace(/\D/g,'').substr(0,13);
}
document.oninput= function() {
if(inp.value.length < 13) inp.focus();
}
</script>
1. Дать ввести человеку что угодно, и onchange проверять введённое, если не нравиться - заставить человека исправить данные. Это самый простой путь.
2. Создать полностью свой элемент input, где будете перехватывать все обращения к клавиатуре и мышке и тачу и еще неизвестным hid, и создавать таким образом свой собственный редактор строки. Это очень громоздко, но будет работать именно так, как Вам нужно.
NiOl, вам нужно изучить событие input
Всем привет, подскажите, пожалуйста как сделать чтобы значение input состояло только из определенного количества цифр (в моем случае тринадцать)?
Если вам нужны натуральные числа от 1 000 000 000 000 до 9 999 999 999 999, то можно сделать при помощи, например, поля для ввода чисел!
<style>
:invalid {
color: red;
}
</style>
<input type="number" min="1000000000000" max="9999999999999" step="1">
Или например, при помощи текстового поля, если вам нужны нули в старших разрядах числа, чтобы его дополнить до 13-ти значного, которое проходит проверку только тогда, когда введено такое 13-значное число!
<style>
:invalid {
color: red;
}
</style>
<input pattern="\d{13}">
UI не должен давать вводить что-то отличное от цифр.
Такая проверка необходима именно на javascript.
Расширим последний пример...
<style>
:invalid {
color: red;
}
</style>
<input pattern="\d{13}" maxlength="13" oninput="this.value=this.value.replace(/\D/g,'')">
vBulletin® v3.6.7, Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot