Использование HTML 5 для изменения языка клавиатуры на мобильных устройствах - PullRequest
6 голосов
/ 21 февраля 2020

У меня есть двуязычная форма HTML 5, и я использую атрибут type, чтобы помочь изменить раскладку клавиатуры для мобильных устройств.

<input type="tel" />
<input type="email" />
<input type="?" />

Это работает нормально, так как значение tel показывает цифровая клавиатура, а в электронном письме отображается настраиваемая клавиатура для ввода электронной почты.

Но мне интересно, есть ли способ указать язык ввода, чтобы устройство переключалось на соответствующую клавиатуру?

Я случайно попробовал это:

<input type="text" lang="ar" />

Но ничего не произошло, возможно ли это даже в HTML5 или Javascript?

Ответы [ 4 ]

5 голосов
/ 21 февраля 2020

Я думаю, что это на самом деле невозможно, проблема, с которой вы столкнетесь, заключается в том, что клавиатура сама по себе является приложением, зависит от локали пользователя, поэтому вы не можете изменить ее непосредственно со своей веб-страницы html и не можете гарантировать, что ваш пользователь будет иметь кодировку «Arabi c», и клавиатура зависит от операционной системы мобильного устройства

Вот пример для html мобильного типа ввода:

http://mobileinputtypes.com/

2 голосов
/ 27 февраля 2020
Атрибут

Lang был проприетарной функцией, добавленной Microsoft в браузер Inte rnet Explorer. Он ссылался на язык сценариев not.It использовался для определения того, какой язык использовать для интерпретации сценариев.

Подробнее: https://html.com/attributes/input-language/#ixzz6F9qYpJJ9

Если вы хотите открыть клавиатуру на определенном языке вы не можете сделать это непосредственно в веб-приложении.

Но вы можете создать свои пользовательские модалы , которые будут работать в качестве клавиатуры для разных языков (внешний вид должен быть настоящей клавиатуры, но не универсальная c клавиатура устройства). В этом случае, когда пользователь нажимает на поле ввода, вы можете запустить свой пользовательский модальный режим. Обычно в приведенном выше сценарии клавиатура устройства также будет срабатывать. Это можно остановить, используя inputmode = 'none' <input type="text" inputmode="none" /> См .: https://css-tricks.com/everything-you-ever-wanted-to-know-about-inputmode/

2 голосов
/ 25 февраля 2020

В расширениях до e2rabi и Srikara B S это действительно невозможно, но может быть обходной путь.

В одном из приложений, создаваемых моим работодателем, они хотели установить строгий набор символов: использоваться. Они в основном устанавливают все входные данные, чтобы они содержали свойство disabled, и при нажатии (касании) отображали пользовательскую клавиатуру. Из-за отключенного атрибута клавиатура не сработает, и с помощью (basi c) Javascript вы можете заполнить ввод клавишами, используемыми на вашей пользовательской клавиатуре.

Это не самый жизнеспособный метод, но так как вы не можете принудительно использовать пользовательский язык клавиатуры (тем более что ОС, подобная Android, допускает использование пользовательских клавиатур), это может быть вашим единственным вариантом, если вы хотите принудительно указать c определенный набор клавиш или схему / макет.

2 голосов
/ 24 февраля 2020

Нет способа изменить язык клавиатуры в браузере. Это зависит от предпочтительного языка пользователя на локальном устройстве. Вероятно, вы можете дать пользователю переводчик на стороне и принять ввод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...