How to focus an input field on Android browser through javascript or jquery

前端 未结 3 1495
挽巷
挽巷 2020-12-01 22:12

I\'ve tried $(\'#field\').focus(), and any other method found on the internet. Nothing worked. I have a simple html that reproduces the problem.



        
相关标签:
3条回答
  • 2020-12-01 22:22

    if you bind it to another click event it will work. This works for me:

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

    Will pop up the software keyboard. trigger() will trigger any event you give it. In this case the default behaviour of clicking on the field == tap == focus == win! Note: this call is bound to another click event happening.

    0 讨论(0)
  • 2020-12-01 22:31

    Actually, the general javascript function "focus" is deactivated in the android browser. Hence, the jQuery focus function is deactivated since it's using the above.

    0 讨论(0)
  • 2020-12-01 22:37

    click() or focus() alone is not enough. You need to focus() then click(). Beware of endless loops if your script is triggered by an onclick() on a containing element. The script below is working for me on Chrome for android 58 and Safari mobile 602.1. Soft keyboard popping nicely.

    var target = document.getElementsByTagName("input")[0];
    
    if (event.target != target) {
        target.focus();
        target.click();
    }
    
    0 讨论(0)
提交回复
热议问题