2016-01-07 1 views
0

Я не понимаю, почему мой обработчик onsubmit не уволен при отправке. Он определен в файле js и требуется html-файлом. как так:обработчик onsubmit не получает из требуемого файла js

GMaps.js 

window.onload = function(){ 
(function initMap() { 
    var myLatLng = {lat: -25.363, lng: 131.044}; 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 4, 
    center: myLatLng 
}); 

var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    title: 'Hello World!' 
}); 

})(); 

function gsubmit(event){ 
    event.preventDefault(); 

    console.log("hi"); 
} 

}; 

и GMaps.ejs

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <title>Google Maps Example</title> 
    <script src="/javascripts/GMaps.js"> </script> 
    <script src="https://maps.googleapis.com/maps/api/js?key=+MYKEY+&signed_in=true"></script> 
    <link rel="stylesheet" type="text/css" href="/stylesheets/GMaps.css"> 
    </head> 
    <body> 

    <div id="map"></div> 

    </br> 

    <form onsubmit="gsubmit()"> 
    Search: <input id="gplace" type="text" placeholder ="input a place to locate"> 
    <input type="submit"></input> 
    </form> 

    </body> 
</html> 

Это лишь простой пример использования GMap, и я не могу получить форму, чтобы признать, что я представить обработчику

+0

попробовать JavaScript: gsubmit() – BCartolo

+0

дубликат [HTML формы действий и onsubmit вопросов] (http://stackoverflow.com/questions/16262797/html-form-action-and -submit-issues) – geocodezip

ответ

2

Это проблема масштаба.

С gsubmit находится в вашей анонимной функции window.onload, к моменту отправки вашей формы функция gsubmit не найдена.

Попробуйте это:

window.onload = function(){ 
    (function initMap() { 
     var myLatLng = {lat: -25.363, lng: 131.044}; 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 4, 
      center: myLatLng 
     }); 

     var marker = new google.maps.Marker({ 
      position: myLatLng, 
      map: map, 
      title: 'Hello World!' 
     }); 
    })(); 
} 

function gsubmit(event){ 
    event.preventDefault(); 
    console.log("hi"); 
} 
+0

l получить эту ошибку javascript с предложенным исправлением: 'Uncaught TypeError: Невозможно прочитать свойство 'preventDefault' неопределенного'. В функцию нет события. – geocodezip

+0

Спасибо! Он работал, как только я избавился от закрытия в файле ejs в форме – trebek1

 Смежные вопросы

  • Нет связанных вопросов^_^