Я хочу использовать тип ввода номера для своей HTML-формы.Введите тип ввода HTML5 = «число», принимающее тире
К сожалению, он принимает только реальные цифры, без дефиса.
Есть ли способ сделать число ввода принимающих чисел «1234-123456789»?
Я хочу использовать тип ввода номера для своей HTML-формы.Введите тип ввода HTML5 = «число», принимающее тире
К сожалению, он принимает только реальные цифры, без дефиса.
Есть ли способ сделать число ввода принимающих чисел «1234-123456789»?
Вы можете использовать регулярное выражение, по которому будет проверяться значение. Просто введите его в атрибут pattern
. Вы также должны изменить свой вход type
на text
, чтобы использовать его.
<input type="text" pattern="[0-9]+([-\,][0-9]+)?" name="my-num"
title="The number input must start with a number and use either dash or a comma."/>
Уже пробовал это. Но потом я теряю клавиатуру с хорошим номером на мобильных устройствах. – alexwenzel
@alexwenzel Обновите свой вопрос кодом –
У меня недавно была та же проблема. Я обошел его, используя type = "tel" вместо type = "text" или type = "number". Используя «tel», я смог получить только цифровую клавиатуру на мобильных устройствах и по-прежнему использовать мой шаблон = «[0-9 \ -] +».
Вот код, который я использовал. Надеюсь, это будет достаточно для того, что вам нужно. Им действительно нужно сделать так, чтобы добавление атрибута pattern переопределяло любой встроенный шаблон, заданный атрибутом type.
<input id='zipcode' name='zipcode' type='tel' pattern="[0-9\-]+" placeholder='Zip-code'>
Конечно, это будет работать только в том случае, если все, что вам нужно, это тире и, возможно, круглые скобки.
Не будет ли причиной проблемы доступности? Скажут ли читатели о том, что люди будут вводить номер телефона? – Carlin
@ Карлин: Хорошая точка. Это очень хорошо может вызвать проблемы с программами чтения с экрана. Таким образом, это не идеальное решение, но разработчик может решить, является ли это приемлемой жертвой. – metamilo
Спасибо за это, умный маленький взлом. Примечание. Это также, по-видимому, позволяет «/», другой символ не разрешен в числовых вводах. Используя это, вы можете ввести даты ввода, которые используют клавиатуру мобильного телефона. –
Значения для входов 'number' всегда должны быть действительными числами с плавающей запятой и поэтому могут содержать только одну тире (то есть знак минуса) перед номером. См. Http://www.w3.org/TR/html5/infrastructure.html#valid-floating-point-number – icke