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ù un dialogue apparaît avec une entrée de texte. Normalement, j'utiliserais jQuery pour mettre l'accent sur l'entrée de texte, mais ça ne marche pas. Voici ce que j'essaie:

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

aucun ne semble fonctionner. Des idées? J'ai été le tester sur mon DroidX. J'utilise jQuery Mobile mais je suis ouvert à d'autres bibliothèques si elles m'aident.

32
demandé sur Adam 2011-07-27 02:49:24

3 réponses

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

Il ya un couple de façons que je connais pour contourner ce problème:

  • prompt() ouvre le clavier
  • si vous activez le .focus() dans un .click() événement (par exemple, à partir de l'ouverture de votre boîte de dialogue), le clavier s'affiche
41
répondu Mark Kahn 2011-07-26 22:53:09

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

ouvrir le clavier en définissant la mise au point à un élément d'entrée, ne fonctionnera que si la mise au point est définie dans un "contexte utilisateur" (par exemple clic, mousedown, mouseup).

à partir du" script context " (setTimeout, callback retourné d'un appel ajax) le clavier ne s'affichera pas.

20
répondu Tony Findeisen 2013-02-28 11:01:34

vous pouvez utiliser:

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

Vous pouvez mettre ce code dans une fonction qui déclenchera l'ouverture d'une superposition, ou lorsque le document est prêt.

1
répondu Petar Parabucki 2016-07-26 06:24:13