2010-11-30 4 views
2

Cela semble être facile, mais il y a une grosse complication que je ne peux pas contourner. Si j'utilise $ ('input'). Onkeyup j'obtiens effectivement les événements, mais le problème réside dans l'autocorrection et l'entrée de kanji japonais (dans ce dernier cas, une liste de suggestions est donnée du bon kanji et vous cliquez pour convertir le roman entrée, mais le clic ne se coince pas $ (« entrée ») onkeyup, et la mise au point ne change pas Voir ici, cliquez sur le bleu gauche et la forme change que:..Comment puis-je attraper un événement depuis le clavier sur une application Web pour iPhone?

alt text

Ces éléments ressemblent à des éléments HTML (le 'autocorrect' ou le 'kanji') mais je ne vois pas comment obtenir ce qu'ils sont, car ils n'apparaissent que dans le simulateur, pas dans Safari proprement dit. ça, y a-t-il un simp la façon de faire un 'clic n'importe où' plus vérifier pour voir si le 'entrée' a mis l'accent, mais l'endroit n'a pas été cliqué?

+0

L'autocorrection déclenche-t-elle l'événement 'OnChange' du champ de texte? Je ne m'attendrais pas à ce qu'il déclenche un événement d'entrée ... – chezy525

+0

Dans la mesure où je peux voir l'événement onchange ne se déclenche que lorsque vous quittez (flou) le champ de texte de toute façon. c'est-à-dire que l'onchange est un changement && flou plutôt que d'être viré au fur et à mesure que vous tapez, donc malheureusement cela ne fonctionnera pas je pense. – Gazzer

+0

Si cela ne vous dérange pas de désactiver la correction automatique, vous pouvez ajouter autocorrect = "off" à votre champ de saisie. Cela peut être votre seule option si vous devez compter sur l'événement. Bien sûr, un autre "hack" serait de comparer la valeur avec une minuterie. – cjimti

Répondre

1

Je ne l'ai pas testé moi-même, mais je m'attendrais à ce que ce flux particulier envoie un événement "textInput", au moins dans webkit.

http://www.w3.org/TR/DOM-Level-3-Events/#event-type-textInput

Plus précisément, vous attendez ce type d'événement « du traitement d'une méthode d'entrée éditeur » qui sonne exactement comme votre situation. Vous devrez peut-être inspecter les propriétés supplémentaires de l'événement pour rechercher des informations sur l'entrée réelle.

informations supplémentaires sur cet événement peuvent être trouvés ici: http://unixpapa.com/js/key.html

Edit: Notez que cet événement sera probablement travailler avec l'approche standard addEventListener, pas un simple attribut de gestionnaire réglage que vous avez fait avec element.onkeyup

Editer: Cela vaut également la peine de vérifier les types d'événements "composition" listés dans le premier document que j'ai lié. Il peut y avoir un certain chevauchement en fonction de l'événement que vous voulez gérer.

Questions connexes