0

Google マップのオートコンプリート機能を使用して、ユーザーの入力に応じて場所を提案しています (http://code.google.com/p/geo-autocomplete/)。ユーザーが候補の 1 つをクリックすると、JavaScript がそれをテキスト フィールドに入力します。これが発生したら、ページをリロードして、ユーザーが URL でクリックした完全なアドレスを渡します。

onclick() を提案のリストに入れてみましたが、これでページがリロードされますが、たとえば、ユーザーが「dubl」と入力して提案から「アイルランドのダブリン」をクリックすると、ページは「dubl」を通過してリロードされます. そのため、javascript がテキスト フィールドに入力された後にページをリロードする必要があります。しかし、JavaScriptがこれを行っている場所が見つかりません...

4

1 に答える 1

2

どのAPIjqueryを使用しているかわかりません。また、詳細情報がないと正確な答えを提供することはできませんが、道を示すことはできると思います。克服すべきいくつかの問題があります。

まず、オートコンプリートAPIには通常、ドロップダウンを選択するためのイベントがあります。これは通常、オートコンプリートによって要素が作成されるまで要素が存在しないため、事前にセレクターを作成できないためです。jQuery UIオートコンプリートはこれを行います:

"Triggered when an item is selected from the menu; 
ui.item refers to the selected item. The default 
action of select is to replace the text field's value 
with the value of the selected item. Canceling this event 
prevents the value from being updated, but does not 
prevent the menu from closing."

$( ".selector" ).autocomplete({
   select: function(event, ui) { //override this behavior }
});

もう1つの大きな問題は、オートコンプリートによるページのリロードのトリガーを停止できない場合、ページのリロード間で通信する効果的なクライアント側の方法がないことです。URLにクエリ文字列などを追加できない限り.html?reload=true、リロードされたページに、実際にリロードされたことを伝えることはできません。

于 2012-08-09T21:33:39.777 に答える