У меня работает приложение HTML5 на планшете Android с несколькими полями ввода, использующими тип = число. Цифровая клавиатура всплывает, как и ожидалось, когда эти поля получают фокус.
Одним из этих полей является сбор номера социального страхования клиента. Наши требования говорят, что поле должно показывать полный SSN, когда сфокусировано, и точки, если оно размыто. Я реализовал это с двумя полями SSN. Один тип ввода = пароль, один тип ввода = номер и по умолчанию скрыт.
<input type="password" name="SSN_Pass" id="SSN_Pass" value="" placeholder="SSN" />
<input type="number" name="SSN" id="SSN" value="" maxlength="9" class="required number" />
У меня есть jQuery, который скрывает поле пароля, когда оно получает фокус, и показывает поле номера. Размытие числового поля копирует значение обратно в поле пароля.
$("#SSN_Pass").focus(function()
{
$(this).hide();
$("#SSN").show().focus();
});
$("#SSN").blur(function ()
{
$(this).hide();
$("#SSN_Pass").show().val($(this).val());
});
Проблема, с которой я столкнулся, заключается в том, что в браузере Android появляется полная буквенно-цифровая клавиатура, когда фокус сначала появляется на поле пароля, либо при щелчке поля ввода или при его нажатии. Пользователь должен щелкнуть по отображаемому теперь числовому полю, чтобы открыть цифровую клавиатуру. Несмотря на то, что я вызываю focus () в поле видимого номера SSN, полная буквенно-цифровая клавиатура остается включенной.
Мне бы хотелось, чтобы браузер переключился на цифровую клавиатуру. Я попробовал пару вещей, таких как изменение фокуса, используя небольшую задержку setTimeout, а также триггер («фокус») на поле, но безуспешно.
Это не проблема с показом, но было бы неплохо иметь только цифровую клавиатуру, поскольку это немного ускорит ввод данных.
Предложения