2010-11-30 13 views
2

これは簡単だと思われますが、私は逃げることができない大きな合併症があります。 $( 'input')。onkeyupを使用すると、実際にイベントを取得しますが、問題はオートコレクションと日本語漢字の入力にあります(後者は正しい漢字のリストがあり、それをクリックするとローマン。入力は、しかし、クリックするとonkeyupの$(「入力」)をキャッチしていない、とフォーカスは変更されませんここを参照してください、それに左青とフォームの変更をクリックします。iPhoneのウェブアプリケーションでキーボードからイベントを取得するにはどうすればよいですか?

alt text

これらの要素はHTML要素( 'autocorrect'や 'kanji')のように見えますが、実際にはSafariではなく、シミュレータにしか表示されないため、実際にどのように取得するのかわかりません。

それはシンプルです"どこでもクリック"したり、 "入力"にフォーカスがあるかどうかをチェックしたり、実際にクリックされた場所ではなかったかどうかをチェックします。

+0

自動修正がテキストフィールドのOnChangeイベントを起動しますか?私はそれが入力イベントを発生させるとは思わないでしょう... – chezy525

+0

私が見ることができる限り、onchangeイベントは、テキストフィールドをとにかく(ぼかして)残すと発生します。つまり、入力時にonchangeは発射されるのではなく、変更&& blurであるため、残念ながらそれは動作しません。 – Gazzer

+0

自動補正をオフにしても問題がなければ、入力フィールドにautocorrect = "off"を追加できます。イベントに頼らなければならない場合は、これが唯一の選択肢かもしれません。もちろん、別の「ハック」は、値をタイマーと比較することです。 – cjimti

答えて

1

これを自分でテストしたことはありませんが、その特定のフローがWebkitに少なくとも "textInput"イベントを送出すると期待しています。

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

具体的には、あなたは正確にあなたの状況のように聞こえる「インプットメソッドエディタの処理から」このタイプのイベントを期待します。イベントの余分なプロパティを調べて、実際の入力に関する情報を調べる必要があるかもしれません。このイベントについて

追加情報はここで見つけることができます: http://unixpapa.com/js/key.html

編集:あなたはelement.onkeyupで行ったように設定する簡単なハンドラ属性、このイベントはおそらく唯一の標準のaddEventListenerアプローチで動作することはないに注意を

編集:リンクされた最初の文書に記載されている「構成」イベントタイプもチェックする価値があります。どのようなイベントを処理したいかによっては、重複があるかもしれません。

関連する問題