Номер типа ввода HTML не работает с maxlength

Я использую приведенный ниже HTML-тег и не могу получить ограничения на числа, мне нужно, чтобы пользователь вводил только 12 цифр, однако в соответствии с HTML-тегом по умолчанию «maxlength» не работает с <input type ="number">, я попробовал теги min и max, он сделал тоже не поможет.

Не могли бы вы поделиться, если есть способ сделать это только в HTML?

<input type="number" name="Aadhar" maxlength="12" placeholder="xxxx-xxxx-xxxx" pattern="[0-9]{4}-[0-9]{4}-[0-9]{4}" required>

person Amit Kumar    schedule 16.09.2020    source источник
comment
Я заметил, что вы используете числовой ввод, но заполнитель и шаблон не являются числом (xxxx-xxxx-xxxx). Возможно ли, что это работает лучше, если вы используете ввод текста?   -  person stealththeninja    schedule 16.09.2020
comment
Я пробовал вводить текст, и он ограничивал длину, но принимал буквенно-цифровые числа.   -  person Amit Kumar    schedule 16.09.2020
comment
Отвечает ли это на ваш вопрос? Как я могу ограничить возможные входные данные в номере HTML5 элемент?   -  person Isaac    schedule 13.04.2021


Ответы (4)


Максимальная длина не будет работать с ‹типом ввода=число. Возможно, вы можете прочитать это нажмите здесь, чтобы узнать больше, чтобы решить вашу проблему

person Choirunnisa    schedule 16.09.2020

К сожалению, атрибут maxlength не поддерживается для входных данных типа number. Поэтому лучший подход — использовать JS. Пожалуйста, обратитесь к следующей документации, и они могут дать некоторую ясность.

person Hashan Siriwardena    schedule 16.09.2020

введите здесь описание изображения

Используйте max вместо maxlength

<input type="number" name="Aadhar" max="12" placeholder="xxxx-xxxx-xxxx" pattern="[0-9]{4}-[0-9]{4}-[0-9]{4}" required>

Когда пользователь нажмет кнопку «Отправить», он покажет, что значение должно быть меньше 12. Это можно использовать только внутри формы.

person Prateek Chaubey    schedule 16.09.2020
comment
Я думаю, что это путает максимальное значение с максимальной длиной. - person stealththeninja; 17.09.2020

Вы можете попробовать это.

function numOnly(id) {
    // Get the element by id
    var element = document.getElementById(id);
    // Use numbers only pattern, from 0 to 9 with \-
    var regex = /[^0-9\-]/gi;
    // Replace other characters that are not in regex pattern
    element.value = element.value.replace(regex, "");
}
<input type="text" id="number" oninput="numOnly(this.id);" name="Aadhar" maxlength="14" placeholder="xxxx-xxxx-xxxx" pattern="[0-9]{4}-[0-9]{4}-[0-9]{4}" required/>

person ron_olo    schedule 16.09.2020
comment
Однако спасибо за ответ, мне нужно сделать это только в HTML, без JS. - person Amit Kumar; 16.09.2020