2013-04-18 77 views
0

我使用這樣的函數變量返回undefined值在JavaScript

function example(){ 
var a; 
$.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     success: function(result){ 
     a=result; 
      } 
    }); 

alert(a); 
} 

我需要AJAX功能

在這裏我得到的結果是不確定的外部變量。我怎樣才能在那裏獲得價值。 ?

+0

集異步:假的,讓你相信的變量被設置。 – Alex

+0

A適用於異步。請閱讀http://learn.jquery.com/ajax/key-concepts/ – Alepac

+0

@Alepac是的教程,並強制ajax-call是同步的,意味着代碼將在警報代碼執行之前執行。 – Alex

回答

8

您可以通過指定async: false來等待ajax調用返回。

function example(){ 
    var a; 
    $.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     async: false, 
     success: function(result){ 
      a=result; 
     } 
    }); 
    alert(a); 
} 
+0

哇....工作..感謝很多mridula :) –

+1

我認爲你應該讀一些關於什麼設置異步真/假其實手段。下次可以幫助你。 – mridula

+0

我認爲異步真實勝於假。 – Jai

4
var a = "I am defined"; 
$.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     success: function(result){ 
      a=result; 
      alert(a); 
     } 
    }); 


} 

一個是不確定的,直到success回調的ajax被調用。

+0

嘿..我想要它.. –

+0

ouside ajax函數..我知道你顯示的方式 –

+0

如果你想這樣,它將是未定義的。 – Triode

-1

設置變量a的默認值。

+0

也不能work.it將始終顯示intitial值。而不是新的。 :( –

+0

你試過什麼mridula說? – i2ijeya

+0

那工作.. :) –

0
I think you should return the value in the success function itself 

function example(){ 
var a; 
$.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     success: function(result){ 
      a=result; 
      alert(a); 
      return a; 
     } 
    }); 
}