作者Qiqi (泼泼)
看板Ajax
标题[问题] alert( $.ajax )
时间Fri Feb 3 16:15:14 2012
alert( login() );
function login(){
$.ajax({
url: './data.php',
type: 'post',
async: false,
data: {action:'login'
},
error: function(xhr) {
alert('Ajax request 发生错误');
$(e.target).attr('disabled', false);
},
success: function(r) {
return r;
}
});
}
-------------------------------------------
如果我把function里的return改成 alert(r) 是看得到值
但外面的alert( login() ); 却是 undefined
为什麽?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.105.121.221
1F:→ bibo9901:login() 没有 return 任何一个东西呀... 02/03 16:59
2F:→ Qiqi:我该怎麽把success的r传出去呢? 在外层宣告变数来储存? 02/03 17:03
function login(){
var re='';
$.ajax({
url: './data.php',
type: 'post',
async: false,
data: {action:'login'
},
error: function(xhr) {
alert('Ajax request 发生错误');
$(e.target).attr('disabled', false);
},
success: function(r) {
return r;
}
});
return re;
}
加了两行,可以取到了,原来是区域变数的问题
但我觉得我的写法是不是有点蠢(粗糙)
有没有好一点的写法?
※ 编辑: Qiqi 来自: 112.105.121.221 (02/03 17:07)
3F:推 kerash:反正都是要 alert, 为什麽不在 success 里面直接做? 02/03 17:14
4F:→ Qiqi:alert只是给自己看,实际上是要存在变数给别的地方用 02/03 17:19
5F:→ kerash:以前找到的答案是 windows.xxx=? 02/03 17:45
6F:推 TheThird:要存变数也可以用个input hidden。 02/03 17:55
7F:→ terlin10:只是要给自己看的,就用console.log吧! 02/03 21:20
8F:推 mrbigmouth:console.log会在ie8以下出bug...要放上网路前记得砍掉 02/05 06:28