0
固定 - 见下:)JQuery验证规则不工作
我使用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
});
});
我可以看到地理代码请求赶回来,发现还是没有发现任何具体的地址,但验证仍然失败 - 如果我修改功能接下来,我会收到有关有效或无效地址的警告yes或警告no,但验证仍然失败。
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
});
});
谢谢你,你认为我可以破解它,因为我有50多个字段。也许使用函数根据地理代码结果设置值为1或0的隐藏表单域,并根据该结果进行验证?或者我还会浪费我的时间。谢谢 –
是的,那可以工作。触发您的ajax调用地理代码检查,然后在ajax响应处理程序中执行您所需的任何操作(根据响应将#地址字段标记为有效或无效)。 – WTK