2012-03-22 7 views
8

私はそうのように、GoogleマップAPI(レベル3)のためのオートコンプリートの入力をインスタンス化しています:実行時にオンとオフを自動補完機能を有効にする方法Googleマップのオートコンプリートのオン/オフを切り替えるにはどうすればよいですか?

var input = document.getElementById('szukanyAdres'); 
autocomplete = new google.maps.places.Autocomplete(input); 
autocomplete.bindTo('bounds', map); 

+0

サイトでオートコンプリートを使用したくないとわからないのですか?だから、コードを削除しないのはなぜですか? –

+0

私はそれをオン/オフしたい –

答えて

2

オートコンプリート

  1. 入力要素
  2. リストのエントリが含まれているdiv要素に関連する2つの要素があります。このdivはボディに追加され、クラス「pac-container」を持ちます

できること:両方の要素を表示スタイルを変更して表示または非表示にします。


それはあなたが入力のクローンで入力を置き換えることができ、入力を非表示にすることはできません場合は、これはオートコンプリート-機能を削除します。

inputObject.parentNode.replaceChild(inputObject.cloneNode(true),input); 

オートコンプリートを復元するには、やり直しをします。

+0

私は入力を隠すことができません:/ –

+0

上記の別の提案を追加 –

8

Dr.Molleのソリューションは私にとっては機能しません。私が見つけた

ソリューションはclearListenerにあるとPAC-コンテナを削除します。

var autocomplete; 
var autocompleteListener; 
function disableGoogleAutocomplete() { 
    if (autocomplete !== undefined) { 
      google.maps.event.removeListener(autocompleteListener); 
      google.maps.event.clearInstanceListeners(autocomplete); 
      $(".pac-container").remove(); 

      console.log('disable autocomplete to GOOGLE'); 
    } 
} 
function enableGoogleAutocomplete() { 
    autocomplete = new google.maps.places.Autocomplete($("#inputDiv input")[0], options); 
    autocompleteListener = google.maps.event.addListener(autocomplete, 'place_changed', function() { ... } 
    console.log('set autocomplete to GOOGLE'); 
} 

今、私はGoogleがオートコンプリートを置くのオン/オフを切り替えることができます。

+0

これは機能的にオートコンプリートを無効にしていますか?視覚的には動作しますが、$( '.pac-container')をコメントアウトすると、remove()リスナ/オートコンプリートはまだ有効です。 –

+0

はい、Googleマップのオートコンプリートと自分のデータを切り替えるために使用します。 – Jerome2606

+0

なぜ 'google.maps.event.removeListener'を使用しますか?あなたは 'google.maps.event.clearInstanceListeners'を使っていて、それで十分です。 – Erik

9

オートコンプリートに追加されたすべてのリスナーを削除します。

autocomplete.unbindAll(); 

入力要素に追加されたすべてのリスナーを削除します。

google.maps.event.clearInstanceListeners(input); 

ここに書かれたものがあなたのために動作しない場合、あなたはそれを隠すだけにしようとすることができhttps://code.google.com/p/gmaps-api-issues/issues/detail?id=3429

+0

おかげで、ありがとう!複数の入力に失敗した場合にGoogleの場所と別のAPIを切り替えようと時間を費やしていましたが、実際に問題が解決されました。プレイスを無効にした後、私たちの他のサービスは提案を表示していましたが、他のイベントが無効になっていてコンテナが隠されていても、提案を入力したキー入力がGoogleによって処理されていました。 – drew010

0

を参照してください。 入力中に表示される場所のフィールドは、cssクラスの.pac-containerにあるので、css display:noneに宣言してください。検索ボックスに入力中は表示されません。実際にはそれをカスタマイズする方法ではありません。

関連する問題