Атрибут inputmode тега <textarea>
Описание
Атрибут inputmode в теге <textarea> указывает браузеру, какой тип виртуальной клавиатуры показывать на мобильных устройствах при фокусе на поле. Это улучшает пользовательский опыт, особенно на смартфонах и планшетах.
<textarea inputmode="text">
Стандартная клавиатура для текста
</textarea>
Значения атрибута:
| Значение | Описание | Когда использовать |
|---|---|---|
text |
Стандартная текcтовая клавиатура (по умолчанию) | Для обычного текста |
numeric |
Цифровая клавиатура | Для числовых кодов, PIN-кодов |
decimal |
Клавиатура с цифрами и десятичной точкой | Для дробных чисел |
email |
Клавиатура с @ и .com | Для ввода email-адресов |
url |
Клавиатура с / и .com | Для ввода URL-адресов |
search |
Клавиатура с кнопкой поиска | Для поисковых полей |
tel |
Телефонная клавиатура | Для телефонных номеров |
Особенности работы:
- Работает только на мобильных устройствах
- Не влияет на валидацию ввода
- Поддерживается большинством современных браузеров
- Может сочетаться с другими атрибутами (pattern, type)
Примеры для разных сценариев:
<!-- Для ввода кода подтверждения -->
<textarea inputmode="numeric" maxlength="6"></textarea>
<!-- Для ввода адреса сайта -->
<textarea inputmode="url" placeholder="https://example.com"></textarea>
<!-- Для ввода телефонного номера -->
<textarea inputmode="tel"></textarea>
Рекомендации:
- Используйте соответствующий inputmode для типа данных
- Сочетайте с maxlength для числовых полей
- Тестируйте на реальных мобильных устройствах
- Не заменяет атрибут type для input элементов
Ограничения:
- Не работает на десктопных браузерах
- Поддержка в старых браузерах ограничена
- Не гарантирует правильный ввод данных
- Поведение может отличаться на разных платформах
Пример хорошей практики:
<form>
<label>Код подтверждения (6 цифр):</label>
<textarea inputmode="numeric"
pattern="[0-9]{6}"
maxlength="6"
title="Введите 6 цифр">
</textarea>
<label>Ваш email:</label>
<textarea inputmode="email"></textarea>
</form>
Примечание: Для сложных сценариев ввода:
- Используйте маски ввода через JavaScript
- Рассмотрите специализированные библиотеки (inputmask)
- Для числовых полей лучше использовать <input type="number">