看板 Ajax 關於我們 聯絡資訊
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
bibo9901:login() 沒有 return 任何一個東西呀... 02/03 16:59
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)
kerash:反正都是要 alert, 為什麼不在 success 裡面直接做? 02/03 17:14
Qiqi:alert只是給自己看,實際上是要存在變數給別的地方用 02/03 17:19
kerash:以前找到的答案是 windows.xxx=? 02/03 17:45
TheThird:要存變數也可以用個input hidden。 02/03 17:55
terlin10:只是要給自己看的,就用console.log吧! 02/03 21:20
mrbigmouth:console.log會在ie8以下出bug...要放上網路前記得砍掉 02/05 06:28