2011-11-15 12 views
2

jQueryオートコンプリートインスタンスをテキストボックスフォーカスで開き、リモートソースからデータを取得しようとしています。私の試みの近似がここに示されています:jQueryUIオートコンプリート:テキストボックスフォーカスのトリガー

http://jsfiddle.net/Ug2aG/1/

これに伴う問題は、あなたがドロップダウンから値を選択するときに、テキストボックスのフォーカス方式への余分な呼び出しに注意しましょうということです。この余分な呼び出しを防ぐ方法を見つけ出すことはできません。機能が妨げられているからです。

私が達成しようとしていることを行う良い方法はありますか?

+0

FF8またはChromeで問題が表示されない –

+0

テキストボックスに複数の時間が集中すると、「値を取得しています」というテキストが複数回表示されますか? – heisthedon

+0

@Heryはい、そうです。 「値を取得する」は複数回トリガしません。 –

答えて

6

はここであまりにもハックではありませんソリューションです:

$('#tags').focus(function() { 
    /* Only search if the autocomplete menu is hidden: */ 
    if ($("ul.ui-autocomplete").is(":hidden")) { 
     $(this).autocomplete('search', ''); 
    } 
}); 

更新例:http://jsfiddle.net/9x3hu/

あなたが好奇心なら、here's the lineあなたの悲しみを引き起こしています。アイテムを選択すると、ウィジェットの対象となるinputが自動的にフォーカスされます。

これは奇妙に思えるかもしれませんが、おそらくUPDOWNの矢印を使用してドロップダウンリストをナビゲートする必要があります。その場合は、フォーカスをinputに戻したいと考えています。

+0

こんにちはアンドリュー、ありがとう、これは問題を解決する! –

0

あなたが追加使用しているためということです。..

これを試してみてください。

$('#status').html('<br />getting values...'); 
+0

申し訳ありませんが、私はそれを正しく述べていないと思います。問題は「値を取得する」が2回表示されているということではありません。問題は、オートコンプリートのソースメソッドが2回呼び出されていることです。メッセージはこれを追跡するのに役立ちます。編集:言い換えれば、テキストボックスをクリックし、ドロップダウンから値を選択すると、フォーカスメソッドが再度トリガされます。 –

+0

chromreとie9の問題は見えません。 – heisthedon

+0

どのブラウザを使ってテストしますか? – heisthedon

関連する問題