Показать виртуальную клавиатуру на мобильных телефонах в JavaScript - PullRequest
34 голосов
/ 27 июля 2011

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

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

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

Ответы [ 3 ]

43 голосов
/ 27 июля 2011

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

Есть несколько способов обойти это:

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

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

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

В «контексте скрипта» (setTimeout, обратный вызов, возвращенный при вызове ajax) клавиатура не отображается.

1 голос
/ 26 июля 2016

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

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

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

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