我在我的 Facebook 注册插件中使用了一个自定义字段,并且需要验证一个返回布尔值的邮政编码字段,不知何故因为这个内部函数:
geocoder.geocode({ address: address }, function (results, status) {
}
我无法向我的 addExist 变量返回值,它总是返回“未定义”。任何人都可以帮忙吗?谢谢。
<fb:registration redirect_uri="http://localhost:40153/Account/RegisterDestination.aspx"
fields='[
{"name":"name"},
{"name":"gender"},
{"name":"email"},
{"name":"birthday"},
{"name":"password"},
{"name":"zip","description":"Postal Code","type":"text"}]'
onvalidate="validate"></fb:registration>
function validate(form) {
errors = {};
if (form.zip !== "") {
var addExist = calculateCoordinates(form.zip.toString());
// alert(addExist);
if (!addExist) {
errors.zip = "Cannot locate address";
}
}
return errors;
}
function calculateCoordinates(zip) {
var txtPostcode = zip;
// var address = txtAddress1.value + ', ';
// address += txtAddress2.value + ', ';
// address += txtTown.value + ', ';
var address = txtPostcode;
// address += txtCountry.value;
var geocoder;
geocoder = new google.maps.Geocoder();
geocoder.geocode({ address: address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var location = results[0].geometry.location;
var litLatClientId = document.getElementById("<%=litLat %>");
var litLongClientId = document.getElementById("<%=litLong %>");
$("#" + litLatClientId).val(location.lat());
$("#" + litLongClientId).val(location.lng());
// Successfully reach here but the bool variable 'addExist' value gets an 'Undefined' value.
return true;
}
else
return false;
});
}