2011-09-15 11 views
5

私は宿題をしてたくさんの質問をチェックしましたが、私は働くことができる何かを見つけることができませんでした。jQueryでキー押下(keydown)をトリガー

私は検索入力があります。ユーザーが例をクリックすると、「医者」という言葉が検索入力の手紙に文字で書き込まれます。私はずっと前に$( "#search")val()を変更することでこれを行うことができましたが、ここに問題があります。通常、ユーザーが検索入力オートコンプリートdivに入るときです。これはkeydownイベントによって起動されます。私は入力のval属性を変更するだけで、オートコンプリートdivは出てこないので、何とかkeydownイベントをトリガーする必要があります。

私は、このソリューションが見つかりました:

$("#example").click(function() {  
    $("#search").focus(); 
    var e = jQuery.Event("keyup"); 
    e.keyCode = 50;      
    $("#search").trigger(e);      
}); 

を私はそれが仕事を得るcouldntの。どんなアイデアですか?ここで

は、HTMLがどのように見えるかです:

<input type="text" id="search" /> 
Example: <span id="example">doctor</span> 
+0

私のタイトルはkeydownイベントですが、それは明らかにkeyupイベントでしか達成できないので、コードでは代わりにキーアップを使用しました。とにかく、誰も私のために働いていない。 – Nazar

+0

私はe.keyCodeの代わりにe.whichを使用しようとしました。まだ何も変わることはありません。スクリプトはfocus()イベントまで動作します。入力が集中し、スクリプトの実行が停止したように見えます。 – Nazar

答えて

8
$("#example").click(function() {  
    $("#search").focus(); 
    var e = jQuery.Event("keydown"); 
    e.keyCode = 50;      
    $("#search").trigger(e);      
}); 

ref:Definitive way to trigger keypress events with jQuery

+0

私はあなたの提供したリンクから私のために働く答えを見つけたと思います。私は1つのコメントに気付かなかった。 @Nadia Alramliのコメントを引用する: >いいえ、あなたは概念を理解しています。これはどのように >仕事になっているのではありません。トリガはイベントハンドラのみを呼び出します。実際には >キーを印刷することはありません。キーを印刷する効果をシミュレートしたい場合は、 >キーを入力値に追加して、同じ時刻に でイベントをトリガーします。 #:2903 Nadia Alramli at 0:21 – Nazar

0

良い方法がtextChange eventではなく、keyUpイベント/ダウンであなたのオートコンプリートをトリガすることです。そうすれば、簡単な方法で$("#search").val()を使うことができ、オートコンプリートがトリガーされます。

追加ボーナス:あなたがtextChangeを使用している場合など、マウスのコンテキストメニューを使用して、ユーザー・コピー・ペーストのテキストは(と、それはタブ移動または矢印キーでトリガしません)場合、それはまた、オートコンプリートをトリガする

+0

お返事ありがとうございます!私は確かにこれをチェックします。私はそのような出来事が可能であることを知らなかった。しかし、私は私のkeydownをフィルタリングしたので、矢印を押すとオートコンプリートを起動しません。 – Nazar

+0

私は、とにかくキー押下をトリガーする必要があることに気づきました。ユーザーが例文を押すと_doctor_単語が入力され、オートコンプリートdivが出現するからです。次に私は矢印を一度トリガしてキーを1回入力する必要があるので、オートコンプリートdivの最初の提案のURLに移動します。それはデモのようなものになっているはずです。 – Nazar

+0

確かに、それが私だったら、 '.textchange(autocomplete_handler)'と別の '.keydown(arrows_and_enter_handler)'をします。 –

関連する問題