作者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