未定义函数javascript onclick

时间:2019-09-15 09:50:39

标签: javascript

我是编程的新手,所以不要判断我。尝试编写代码以测量经度和纬度的长度。显示此错误:

  

length.html:27 未捕获的ReferenceError:未定义区域           在HTMLInputElement.onclick(length.html:27)

<html>
    <head></head>
    <body>
        <script type="module">
                import LatLon from 'https://cdn.jsdelivr.net/npm/geodesy@2.2.0/latlon-spherical.min.js';
                function area()
                {
                var la1 = document.getElementById(lat1).value;
                var la2 = document.getElementById(lat2).value;
                var lo1 = document.getElementById(lon1).value;
                var lo2 = document.getElementById(lon2).value;
                const p1 = new LatLon(la1, lo1);
                const p2 = new LatLon(la2, la2);
                const d = p1.distanceTo(p2);
                    document.write('<br>Length is : ' + d);
                }
        </script>
        <form>
            First point<br>
             Latitude:&nbsp;
             <input type="text" name="lat1" id="lat1"><br>
             Longitude:
            <input type="text" name="lon1" id="lon1"><br>
            Second point<br>
            Latitude<input type="text" name="lat2" id="lat2"><br>
            Longitude<input type="text" name="lon2" id="lon2"><br>
            <input type="button" value="submit" onclick="area()">
        </form>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

使用<script type="module">时,将创建一个单独的作用域以防止名称冲突。有关更多详细信息,请参见JavaScript modules

您可以通过将函数添加到window命名空间中来使函数成为全局函数,如下所示:

window.area = area;

或者您可以在JavaScript中简单地使用addEventListener

document.querySelector('[type=submit]').addEventListener('click', area);