Показать виртуальную клавиатуру на мобильных телефонах в javascript

Я создаю мобильную версию своего сайта. Там часть сайта, где открывается диалоговое окно с текстовым вводом. Обычно я просто использовал jQuery, чтобы сфокусироваться на текстовом вводе, но это не работает. Вот что я пытаюсь:

$("#textinput").focus();
$("#textinput").click(); 
$("#textinput").trigger("tap"); //jQuery Mobile

Никто из них, похоже, не работает. Есть идеи? Я тестировал его на своем DroidX. Я использую jQuery Mobile, но я открыт для других библиотек, если они помогают.

Ответ 1

Вы не можете, по крайней мере, не в iOS (iPhone), и я тоже считаю Android. Это проблема юзабилити, с которой клавиатура не должна запускаться, кроме ввода пользователем (это просто раздражает, если она автоматическая).

Есть несколько способов, которыми я знаю, чтобы обойти это:

  • prompt() открывает клавиатуру
  • Если вы вызываете .focus() изнутри события .click() (например, от открытия вашего диалога), клавиатура показывает

Ответ 2

$( "# TextInput" ) фокус();.

Открытие клавиатуры путем установки фокуса на элемент ввода будет работать только в том случае, если фокус установлен в "пользовательском контексте" (например, щелчок мыши, mousedown, mouseup).

Из контекста script (setTimeout, обратный вызов, возвращаемый при вызове ajax) клавиатура не будет отображаться.

Ответ 3

вы можете использовать:

$(textFiled).trigger("focus");

вы можете поместить этот код в некоторую функцию, которая будет срабатывать при открытии некоторого оверлея или когда документ будет готов.