Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onsubmit处理程序未从所需的js文件中获取_Javascript_Forms_Google Maps_Form Submit - Fatal编程技术网

Javascript onsubmit处理程序未从所需的js文件中获取

Javascript onsubmit处理程序未从所需的js文件中获取,javascript,forms,google-maps,form-submit,Javascript,Forms,Google Maps,Form Submit,我不明白为什么我的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,

我不明白为什么我的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的一个基本示例,我无法让表单识别我的提交处理程序,这是一个范围问题

由于
gsubmit
位于
窗口内。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");
}

尝试javascript:gsubmit()复制l使用建议的修复程序获取此javascript错误:
uncaughttypeerror:cannotread属性“preventDefault”为未定义的
。没有向函数传递任何事件。谢谢!一旦我在表单中去掉ejs文件中的闭包,它就工作了