簡體   English   中英

沒有從所需的js文件中獲取onsubmit處理程序

[英]onsubmit handler not getting picked up from a required js file

我不明白為什么我的onsubmit處理程序沒有在提交時被解雇。 它在js文件中定義,並且在html文件中需要。 像這樣:

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的基本示例,我無法獲取表單來識別我的提交處理程序

這是一個范圍問題。

由於gsubmitwindow.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");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM