为什么当从Ajax调用返回值时,此脚本会导致'undefined'?
function myShippingApp() {
this.shipper = 0;
this.init() {
this.getShipRate();
alert(this.shipper);
}
this.getShipRate = function() {
var zip = $('zip').value;
if(zip == '') {
return false;
} else {
var url = 'getrate.php?zip='+zip;
this.shipper = new Ajax.Request(url, {
onComplete: function(t) {
$('rates').update("$"+t.responseText);
return t.responseText;
}
});
}
}
}
我正在使用Prototype框架,并且无法将值返回给对象。 我做错了什么?
谢谢!
答案 0 :(得分:2)
你想要的值是在t.responseText中,它不会被Ajax.Request对象“返回”,因此this.shipper永远不会赋值。
这可能更符合您的要求:
function myShippingApp() {
this.shipper = 0;
this.init() {
this.getShipRate();
}
this.getShipRate = function() {
var zip = $('zip').value;
if(zip == '') {
return false;
} else {
var url = 'getrate.php?zip='+zip;
new Ajax.Request(url, {
onComplete: function(t) {
$('rates').update("$"+t.responseText);
this.shipper = t.responseText;
alert(this.shipper);
}
});
}
}
}
让我知道它是否适合你。
答案 1 :(得分:0)
Ajax.Request不返回任何值,它是对象的实例化。
我猜你可以说价值就是对象本身。