javascript - 无效值错误: not an instance of HTMLInputElement

标签 javascript google-maps google-maps-api-3 google-maps-markers google-places-api

仅供引用,我不是 JavaScript 忍者,但当我最近基于 Google map 做了很多事情时,我感觉自己会成为 JavaScript 忍者。

我实现了一张 map 。用户可以搜索谷歌地点并为其放置标记。有一个文本框。或者用户可以单击 map 将标记放置到他要查找的位置或拖动标记。

代码保持不变。设计改变了。输入字段的 ID 和名称也相同。 JS 代码没有改变。但这东西不起作用。

这是website

Google map 出现错误。

 InvalidValueError: not an instance of HTMLInputElement

我尝试了给出的解决方案 here 但错误仍然存​​在。

可能的原因是什么?

代码如下:

        var map;
        var marker;
        var latLngC;

        function initialize() 
        {
            latLngC = new google.maps.LatLng(14.5800, 121.0000);
            var mapOptions = {
        center: latLngC,
        zoom: 12,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        };

            map = new google.maps.Map(document.getElementById('source_map'),
        mapOptions);

        var marker = new google.maps.Marker({
                position: latLngC,
                map: map,
                draggable: true
            });

            google.maps.event.addListener(marker, 'dragend', function (x) 
            {
            document.getElementById('src_lat').value = x.latLng.lat();
            document.getElementById('src_long').value = x.latLng.lng();
            document.getElementById('pickup_location').innerHTML = x.latLng.lat()+' , '+x.latLng.lng();
                var geocoder = new google.maps.Geocoder;
                var infowindow = new google.maps.InfoWindow;                
            geocodeLatLng(geocoder, map, infowindow,x.latLng.lat(),x.latLng.lng(),'source_point');
            }); 

            //Get coordinates,address Upon clicking a location in map (Source Map)
            //By Sajeev
            google.maps.event.addListener(map, 'click', function(x) 
            {
            document.getElementById('src_lat').value = x.latLng.lat();
            document.getElementById('src_long').value = x.latLng.lng();
            document.getElementById('pickup_location').innerHTML = x.latLng.lat()+' , '+x.latLng.lng();
                var geocoder = new google.maps.Geocoder;
                var infowindow = new google.maps.InfoWindow;                
            geocodeLatLng(geocoder, map, infowindow,x.latLng.lat(),x.latLng.lng(),'source_point');
            });

        //Add marker upon clicking on map
            //google.maps.event.addDomListener(map, 'click', addMarker);
            google.maps.event.addDomListener(map, 'click', function() { addMarker(map); }); 



        var places1 = new google.maps.places.Autocomplete(document.getElementById('source_point'));
        google.maps.event.addListener(places1, 'place_changed', function () {
            var place1 = places1.getPlace();

            var src_addr = place1.formatted_address;
            var src_lat = place1.geometry.location.lat();
            var src_long = place1.geometry.location.lng();

            var mesg1 = "Address: " + src_addr;
            mesg1 += "\nLatitude: " + src_lat;
            mesg1 += "\nLongitude: " + src_long;
            //alert(mesg1);

                 document.getElementById('src_lat').value = src_lat;
            document.getElementById('src_long').value = src_long;
            document.getElementById('pickup_location').innerHTML = src_lat+' , '+src_long;                 
        });
        //Add marker upon place change
        //google.maps.event.addDomListener(places1, 'place_changed', addMarker);            
            google.maps.event.addDomListener(places1, 'place_changed', function() { addMarker(map); }); 

        }
        google.maps.event.addDomListener(window,'resize',initialize);
        google.maps.event.addDomListener(window, 'load', initialize); 

我的 HTML 代码如下所示:

   <form role="form" id="frm_source" name="frm_source" method="POST" action="index_action.php">

        <div class="form-group">
            <label for="source_point"><h2>Pickup Address</h2></label>
            <textarea type="text" id="source_point" name="source_point"  class="form-control" placeholder="Enter your pick up address here"></textarea>
        </div>

        <div class="form-group">
            <label for="pickup_location"><h3>GPS Cordinates</h3></label>
            <hr>
            <p id="pickup_location"></p>
        </div>

        <div class="form-group">
            <input type="hidden" id="src_lat" name="src_lat" placeholder="latitude" >
            <input type="hidden" id="src_long" name="src_long" placeholder="longitude" >
        </div>

    <input type="submit" name="submit" id="submit" class="btn btn-primary" value="Next to enter destination address" />
    </form>

谷歌地图

<div id="source_map"></div>

最佳答案

您的字段是 TEXTAREA,从上次更新开始,Google map 自动完成功能现在仅支持 window.HTMLInputElement(INPUT 标记)

关于javascript - 无效值错误: not an instance of HTMLInputElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063439/

相关文章:

javascript - 在javascript中调用函数的不同方式

javascript - 如何获取 'width'属性的属性值

javascript - Highcharts 年龄堆叠

javascript - 谷歌地图 : asynchronous loading with coffeescript

google-maps - 在谷歌地图中查找最近的学校以获取邮政编码

google-maps - 通过API自定义Google Maps Layers?

javascript - 在新选项卡中打开时网址显示不同的 php 文件

android - 使用 Android 版 Chrome 移动版的路线加载 Google map

php - 使用谷歌地图进行邻近搜索

javascript - 标记更新位置