此 html 中的表单有一个 onsubmit 属性,该属性执行 codeAddress() 函数,但是在 Google Chrome 开发控制台中它说找不到它。该函数应该更改“lat”和“lng”表单输入的值,这些输入在单独的 css 文件中将显示属性设置为“none”。然后这些值将被发送到 php 文件进行处理。
<html>
<head>
<link type="text/css" rel="stylesheet" href="map.css"/>
<link type="text/css" rel="stylesheet" href="newelements.css"/>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js"></script>
<script src="my_js.js"></script>
<script type="text/javascript">
var customIcons = {
restaurant: {
icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png'
},
bar: {
icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png'
}
};
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(47.6145, -122.3418),
zoom: 13,
mapTypeId: 'roadmap'
});
var infoWindow = new google.maps.InfoWindow;
downloadUrl("genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {};
google.maps.event.addListener(map, 'click', function( event ){
alert( "Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng() );
});
function codeAddress() {
var address = document.getElementById('address').value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// );
// what happens here?
} else {
alert('Geocode was not successful for the following reason: ' + status);
};
document.getElementById("lat").innerHTML = point.lat().toFixed(5);
document.getElementById("lng").innerHTML = point.lng().toFixed(5);
};
</script>
</head>
<body onload="load()">
<button type="button" id="krusts" onclick="div_show()" ></button>
<div id="map" ></div>
<div id="abc">
<div id="popupContact">
<form onsubmit="codeAddress()" action="registerEvent.php" id="form" method="post">
<h2 id="formvirsr">Ievadiet notikumu</h2>
<input id="nosaukums" name="nosaukums" placeholder="Nosaukums" type="text">
<input id="address" name="address" placeholder="Adrese" type="text">
<select name="veids" id="veids">
<option value="" disabled selected>Notikuma veids</option>
<option value="Viens">Viens</option>
<option value="Divi">Divi</option>
<option value="Tris">Tris</option>
<option value="Cetri">Cetri</option>
</select>
<input id="datums" name="datums" type="date">
<input id="laiks" name="laiks" type="time">
<input id="lat" name="lat" >
<input id="lng" name="lng" >
<textarea id="info" name="info" placeholder="Papildu info"></textarea>
<button type="submit" id="submit">Send</button>
<button type="button" id="close" onclick ="div_hide();">Close</button> <!-- aizversanas poga -->
<br>
</form>
</div>
</div>
</body>
</html>
最佳答案
事实上,您正在将 geocoder.geocode(第 80 行)的括号放在下面的“if”(第 82 行)中间。这是错误的。
关于javascript - 在 HTML 中找不到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29610026/