Отображение мягкой клавиатуры Android, когда поле является .focus () 'd, используя javascript

На веб-странице у меня есть поле поиска. Я добавил кнопку «clear», чтобы пользователи могли очистить поле поиска и начать заново. В качестве удобства я фокусирую текстовое поле поля поиска, и курсор появляется в поле. Однако, мягкая клавиатура, похоже, не появляется на устройствах Android, которые используют браузер по умолчанию. В iOS и Opera Mobile он работает так, как я ожидал.

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

function clear_search() { if($('#searchinput').val()) { $('#searchinput').val(''); } $('#searchinput').focus(); } 

Я не уверен на 100%, но я думаю, что это не может быть сделано (по крайней мере до android 2.2) из ​​javascript. Если вы используете phonegap, вы можете использовать это здесь: https://github.com/phonegap/phonegap/wiki/How-to-show-and-hide-soft-keyboard-in-Android

Этот вопрос похож на Как сфокусировать поле ввода в браузере Android через javascript или jquery

Во всяком случае, поскольку у вас уже есть событие click для работы, это должно сортировать вас:

 $(document).ready(function() { $('#field').click(function(e){ $(this).focus(); }); $('#button').click(function(e) { $('#field').trigger('click'); }); }) 

Конечно, вам нужно событие щелчка, запускающее это. Просто фокусировка без события не работает. Вышеупомянутое работает для меня в стандартном браузере на Android 4 и показывает мягкую клавиатуру.

click() по себе недостаточно . Вам нужно focus() затем click() . Остерегайтесь бесконечных циклов, если ваш скрипт запускается onclick () в содержащем элементе. Сценарий ниже работает для меня в Chrome для Android and 58 и Safari mobile 602.1.

 var target = document.getElementsByTagName("input")[0]; if (event.target != target) { target.focus(); target.click(); }