Comment concentrer un champ de saisie sur un navigateur Android via javascript ou jquery

J'ai essayé $('#field').focus() , et toute autre méthode trouvée sur internet. Rien ne fonctionnait. J'ai un HTML simple qui reproduit le problème.

 <!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> 

Aidez-nous!

En fait, la fonction javascript générale "focus" est désactivée dans le navigateur Android. Par conséquent, la fonction de mise au point jQuery est désactivée car elle utilise ce qui précède.

Si vous l'attachez à un autre événement de clic, cela fonctionnera. Cela fonctionne pour moi:

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

Affiche le clavier du logiciel. Trigger () déclenche tout événement que vous lui donnez. Dans ce cas, le comportement par défaut de cliquer sur le champ == tapez == focus == gagner! Remarque: cet appel est lié à un autre événement de clic se produisant.

click() ou le focus() seul ne suffit pas . Vous devez vous focus() puis click() . Méfiez-vous des boucles infinies si votre script est déclenché par un onclick () sur un élément contenant. Le script ci-dessous fonctionne pour moi sur Chrome pour Android 58 et Safari mobile 602.1. Le clavier doux est très agréable.

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