1. ホーム
  2. javascript

オートコンプリートで発生するイベントはありますか?

2023-10-10 22:11:28

質問

私は非常にシンプルなフォームを持っています。 ユーザーが入力フィールドにタイプすると、ページ上の他の場所にタイプされたものを更新したいのです。 これはすべてうまく動作します。 私は更新を keyup , changeclick というイベントがあります。

唯一の問題は、ブラウザのオートコンプリートボックスから入力を選択した場合、それが更新されないことです。 オートコンプリートから選択したときにトリガーされるイベントはありますか (それはどうやら、どちらも change でも click ). なお、オートコンプリートボックスから選択した場合と をぼかす をぼかすと、更新がトリガーされます。 オートコンプリートと同時にトリガーされるようにしてほしいです。

参照してください。 http://jsfiddle.net/pYKKp/ (過去に多くのフォームに "email" という名前の入力を記入したことがあることを期待します)。

HTMLです。

<input name="email" /> 
<div id="whatever">&lt;whatever></div> 

CSSです。

div { 
    float: right; 
} 

スクリプトです。

$("input").on('keyup change click', function () { 
   var v = $(this).val(); 
    if (v) { 
     $("#whatever").text(v);   
    }  
    else { 
        $("#whatever").text('<whatever>'); 
    } 
}); 

どのように解決するのですか?

私は monitorEvents . これは javascript のコンソールで提供される機能で ウェブインスペクター ファイアバグ で、ある要素で発生したすべてのイベントを出力します。 以下は、その使用例です。

monitorEvents($("input")[0]);

あなたの場合、Firefox と Opera はどちらも input イベントを生成します。 IE7-8 では change イベントが生成されます。 最新の Chrome では、同様のイベントが生成されます。

詳細なブラウザの互換性チャートは、こちらを参照してください。

https://developer.mozilla.org/en-US/docs/Web/Events/input