Ext.apply(Ext.form.field.VTypes,{
cityNameExist:function(value,field){
var exist = false;
Ext.Ajax.request({
url:'listCity.action',
params:{
start:0,
limit:25,
'entity.name':value.trim()
},
method:'POST',
success:function(response){
var totalCount = Ext.decode(response.responseText).totalCount;
if(totalCount > 0){
ReturnValue(false);
}else{
ReturnValue(true);
}
}
});
function ReturnValue(b){
exist = b;
}
return exist;
},
cityNameExistText:'该城市已经存在'
});
永远都返回的是false,难道是JavaScript 作用域的问题? 求如何返回值!
你看下你的ext版本的ajax是否支持async(同步),如果支持的话,那就将该属性设为true,如果不支持,你可以看下这篇帖子
http://xsl2007.iteye.com/blog/748456
1.检查一下response.responseText是否有值
2.检查返回数据是否是json格式
这个是因为Ext.ajax是异步请求,如果没有对ajax请求作限制的话,代码一般会先执行return exist;