Как сфокусировать поле ввода в браузере Android через javascript или jquery - PullRequest
8 голосов
/ 14 января 2012

Я пробовал $('#field').focus(), и любой другой метод, найденный в Интернете.Ничего не получалось.У меня есть простой HTML, который воспроизводит проблему.

<!DOCTYPE html> 
<html> 
    <head> 
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#field').focus();
            });
    </script>
</head> 
<body>
    <input type="text" id="field" name="field"/>
</body>
</html>

Пожалуйста, помогите!

Ответы [ 3 ]

3 голосов
/ 20 апреля 2012

На самом деле, общая функция javascript «focus» отключена в браузере Android.Следовательно, функция фокуса jQuery деактивирована, так как она использует вышеуказанное.

1 голос
/ 24 августа 2012

если вы связываете его с другим событием клика, оно будет работать.Это работает для меня:

    $(document).ready(function()
    {

       $('#field').click(function(e){ $(this).focus(); });

            $('body').click(function(e)
            {
                $('#field').trigger('click');
            })
    })   

Появится программная клавиатура.trigger () будет запускать любое событие, которое вы ему дадите.В этом случае стандартное поведение нажатия на поле == tap == focus == win!Примечание: этот вызов связан с другим событием клика.

0 голосов
/ 23 мая 2017

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

var target = document.getElementsByTagName("input")[0];

if (event.target != target) {
    target.focus();
    target.click();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...