Исправлено - см. Ниже:)
Я использую плагин проверки jQuery и по какой-то причине не могу заставить его вернуть действительное поле - всегда возвращает недействительное.
http://plugins.jquery.com/project/jqueryvalidate
Вот что у меня есть
$(function(){
$("#address").validate({
valid: function(val){
$.getJSON("http://maps.google.com/maps/geo?q="+ escape(val) +"&key=ABQIAAAAnfs7bKE82qgb3Zc2YyS-oBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSySz_REpPq-4WZA27OwgbtyR3VcA&sensor=false&output=json&callback=?",
function(data, textStatus)
{
if(data.Status.code=='200')
{
return true;
}else{
return false;
}
});
},
errorMessage: function(val){
return "must geo code";
},
appendCompletionIcon: true
});
});
Я вижу, что запросы кода GEO возвращаются как найденные или не найденные для какого-либо конкретного адреса, но проверка все еще не проходит - если я изменяю функцию следующим образом, я получаю предупреждение да или предупреждение нет в отношении действительного или недействительного адрес, но проверка по-прежнему не удается.
function(data, textStatus)
{
if(data.Status.code=='200')
{
alert('yes');
return true;
}else{
alert('no');
return false;
}
});
Буду признателен за любую помощь
Я нашел способ обойти это, это не очень красиво, так как для завершения требуется два вызова геокода. Впрочем, достаточно для моих целей.
var geocode = false;
function geoadd()
{
$.getJSON("http://maps.google.com/maps/geo?q="+ $("#address").val() +"&key=ABQIAAAAnfs7bKE82qgb3Zc2YyS-oBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSySz_REpPq-4WZA27OwgbtyR3VcA&sensor=false&output=json&callback=?",
function(data, textStatus)
{
if(data.Status.code=='200')
{
geocode = true;
}else{
geocode = false;
}
});
}
$(function(){
$("#address").validate({
valid: function(val){
geoadd();
return geocode;
},
errorMessage: function(val){
return "must not be blank";
},
appendCompletionIcon: true
});
});