web-dev-qa-db-fra.com

Afficher le clavier virtuel sur les téléphones mobiles en javascript

Je crée une version mobile de mon site. Il y a une partie du site où une boîte de dialogue apparaît avec une entrée de texte. Normalement, j'utiliserais simplement jQuery pour mettre l'accent sur la saisie de texte, mais cela ne fonctionne pas. Voici ce que j'essaie:

$("#textinput").focus();
$("#textinput").click(); 
$("#textinput").trigger("tap"); //jQuery Mobile

Aucun ne semble fonctionner. Des idées? Je l'ai testé sur mon DroidX. J'utilise jQuery Mobile mais je suis ouvert à d'autres bibliothèques si elles aident.

35
Adam

Vous ne pouvez pas, du moins pas dans iOS (iPhone), et je crois aussi Android. C'est un problème d'utilisation que le clavier ne devrait pas être autorisé à être déclenché sauf par une entrée utilisateur (c'est juste ennuyeux si c'est automatique).

Je connais deux façons de contourner ce problème:

  • Prompt() ouvre le clavier
  • Si vous déclenchez la .focus() à partir d'un événement .click() (par exemple à partir de l'ouverture de votre boîte de dialogue), le clavier s'affiche
43
Mark Kahn

$ ("# textinput"). focus ();

L'ouverture du clavier en définissant le focus sur un élément d'entrée ne fonctionnera que si le focus est défini dans un "contexte utilisateur" (par exemple, clic, souris, souris).

Dans le "contexte de script" (setTimeout, rappel renvoyé d'un appel ajax), le clavier ne s'affiche pas.

21
Tony Findeisen

vous pouvez utiliser:

$(textFiled).trigger("focus");

vous pouvez mettre ce code dans une fonction qui se déclenchera à l'ouverture d'une superposition ou lorsque le document sera prêt.

1
Petar Parabucki