[英]JQuery Validate Rule not working
固定-見下文:)
我正在使用jQuery validate插件,由於某種原因,我無法使它返回有效字段-始終返回無效字段。
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
});
});
不管ajax調用狀態如何,驗證都會失敗,因為從valid
處理程序返回的值為null,而不是true或false。
true或false值由ajax的完整處理程序返回,這與從valid
函數中返回true / false值不同。
要解決此問題,您要么必須進行同步ajax調用(我不建議這樣做,因為它在等待響應時會鎖定用戶界面),或者將您的驗證插件更改為其他一些支持使用ajax調用進行驗證的插件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.