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(); }