Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2019, 09:07
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Как сделать чтобы значенрие input состояло только из определенного количества цифр?
Всем привет, подскажите, пожалуйста как сделать чтобы значение input состояло только из определенного количества цифр (в моем случае тринадцать)?
value должен состоять ровно из 13 цифр. UI не должен давать вводить что-то отличное от цифр.
Необходима валидация именно не javascript.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2019, 11:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от s24344
Необходима валидация именно не javascript.
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2019, 13:15
Интересующийся
Отправить личное сообщение для NiOl Посмотреть профиль Найти все сообщения от NiOl
 
Регистрация: 11.06.2017
Сообщений: 15

Тут 2 пути, и оба со своими плюсами и минусами:
1. Дать ввести человеку что угодно, и onchage проверять введеное, если не нравиться - заставить человека исправить данные. Это самый простой путь.
2. Создать полностью свой элемент input, где будете перехватывать все обращения к клавиатуре и мышке и тачу и еще неизвестным hid, и создавать таким образом свой собственный редактор строки. Это очень громоздко, но будет работать именно так, как Вам нужно.

Так что с учетом затрат, определитесь в необходимом и достаточном конечном результате.
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2019, 16:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Для поля maxlength="13" и установить обработчик для oninput, где удалять не цифровой ввод.
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2019, 17:42
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<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>
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2019, 00:06
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от NiOl
1. Дать ввести человеку что угодно, и onchange проверять введённое, если не нравиться - заставить человека исправить данные. Это самый простой путь.
2. Создать полностью свой элемент input, где будете перехватывать все обращения к клавиатуре и мышке и тачу и еще неизвестным hid, и создавать таким образом свой собственный редактор строки. Это очень громоздко, но будет работать именно так, как Вам нужно.
NiOl, вам нужно изучить событие input

Сообщение от s24344
Всем привет, подскажите, пожалуйста как сделать чтобы значение 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}">


Сообщение от s24344
UI не должен давать вводить что-то отличное от цифр.
Такая проверка необходима именно на javascript.
Расширим последний пример...
<style>
:invalid {
	color: red;
}
</style>
<input pattern="\d{13}" maxlength="13" oninput="this.value=this.value.replace(/\D/g,'')">

Последний раз редактировалось Malleys, 28.06.2019 в 00:11.
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2019, 08:04
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Всем большое спасибо.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать скрытие только части текста SL1de Элементы интерфейса 16 28.05.2019 13:06
Как сделать, чтобы скрипт работал только если текущий документ iframe? ruslan_mart Общие вопросы Javascript 10 14.01.2015 13:56
Как сделать, чтобы при заходе на страницу открывались в 2-х окнах 2 ссылки ? autobuh Общие вопросы Javascript 1 26.08.2013 15:27
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24