0

这是我的代码:

<script type="text/javascript">
            var geocoder;
            var map;
            var latlngstr;
            function initialize() {
                geocoder = new google.maps.Geocoder();
                var latlng = new google.maps.LatLng(-34.397, 150.644);
                var mapOptions = {
                    zoom: 15,
                    center: latlng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
            }


            function codeAddress() {
                var address = document.getElementById('address').value;

                geocoder.geocode({ 'address': address }, function (results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {

                        latlngstr = results[0].geometry.location;

                        map.setCenter(results[0].geometry.location);
                        var marker = new google.maps.Marker({
                            map: map,
                            position: results[0].geometry.location
                        });
                    } else {
                        alert('Geocode was not successful for the following reason: ' + status);
                    }
                });


                document.getElementById('lat').value = latlngstr.lat();
                document.getElementById('lng').value = latlngstr.lng();
            }
        </script>
      </head>
      <body onload="initialize()">
          <form  id="form1" runat="server">

        <div>
            <input id="address" type="text" value="sydney" />
            <input type="button" value="Geocode" onclick="codeAddress()">
            <input id="lat" type="text" />

            <input id="lng" type="text" />
        </div>


            <asp:Button ID="Button1" runat="server" 
                  Text="Button" EnableViewState="False" 
                  ViewStateMode="Disabled" OnClientClick="javascript:return codeAddress();"/>



          <div id="map-canvas"></div>
       </form>   
      </body>
    </html>

我想调用函数codeAddress。当我使用 html 按钮调用此函数时,该按钮具有 value Geocode,它工作正常。但是,当我使用 ASP.Net 按钮调用该函数时,会执行“else”部分并且不会产生任何结果。

4

1 回答 1

0

我推断您想要做的是使用地理编码代码来获取纬度和经度,然后将其发回。

与其让一个按钮执行客户端代码并(同时)回发,我会保留 HTML 按钮,但在设置字段后从您的 JavaScript 代码开始表单发布:

            document.getElementById('lat').value = latlngstr.lat();
            document.getElementById('lng').value = latlngstr.lng();
            document.forms[0].submit();
于 2013-03-24T16:15:55.990 回答