-1

Вот установка Google автозаполнения:Google Maps автозаполнение не работает на 2-х страницах (2 разных форм)

<script type="text/javascript"> 
     function initialize() {  

     var from1_input = document.getElementById('autocomplete_from1'); // website.com/page1 
     var to1_input = document.getElementById('autocomplete_to1'); // website.com/page1   
     var from2_input = document.getElementById('autocomplete_from2'); // website.com/page2 
     var to2_input = document.getElementById('autocomplete_to2'); // website.com/page2 

     var autocomplete_from1_input = new google.maps.places.Autocomplete(from1_input); // website.com/page1 
     var autocomplete_to_1_input = new google.maps.places.Autocomplete(to1_input); // website.com/page1 
     var autocomplete_from2_input = new google.maps.places.Autocomplete(from2_input); // website.com/page2 
     var autocomplete_to2_input = new google.maps.places.Autocomplete(to2_input); // website.com/page2    
     } 
     google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 

Проблема заключается в том, что форма на /стр.1 работает хорошо, но на /page2 автозаполнение не работает.

Я пытаюсь удалить JavaScript для page1 и Google автозаполнения работает хорошо там, так что это означает, что автозаполнение работает либо на page1 или на page2, но, к сожалению, в настоящее время на и то и другое.

Идентификаторы верны.

Почему? Есть ли ограничения от конца Google или я что-то упускаю?

Спасибо, ребята.

EDIT:

<%= javascript_include_tag "https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places,geometry" %> 

включен в заголовок.

+0

Мог ли я знать, что он проголосовал? Я пытаюсь понять это, но все еще не знаю проблемы. – user984621

ответ

0

Так у вас есть страница с входами #autocomplete_from1 и #autocomplete_to1 и другую страницу с входами #autocomplete_from2 и #autocomplete_to2?

Браузеры остановить скрипт-исполнение при возникновении ошибки, когда вы находитесь в page2 ошибка возникает здесь:

var autocomplete_from1_input = new google.maps.places.Autocomplete(from1_input); 

... потому что вход не существует, следующие операторы не будут выполнены ,

Вы должны избежать этой ошибки. Существуют различные возможные решения, например. a try/catch-statement

function initialize() {  

    //try to run the code for page1 
try{ 
    var from1_input = document.getElementById('autocomplete_from1'); 
    var to1_input = document.getElementById('autocomplete_to1'); 
    var autocomplete_from1_input = new google.maps.places.Autocomplete(from1_input); 
    var autocomplete_to_1_input = new google.maps.places.Autocomplete(to1_input); 
    } 
    //in case of an error run code for page2 
catch(e){ 
    var from2_input = document.getElementById('autocomplete_from2'); 
    var to2_input = document.getElementById('autocomplete_to2'); 
    var autocomplete_from2_input = new google.maps.places.Autocomplete(from2_input); 
    var autocomplete_to2_input = new google.maps.places.Autocomplete(to2_input); 
    } 
} 
Смежные вопросы