解決ajax無法給js全局變量賦值的問題
http://blog.csdn.net/qq_26222859/article/details/51543433
在ajax中是無法給js中的全局變量賦值的,因為ajax默認是異步請求(當要賦值時,此時的值沒有拿到,所以賦值不成功)。例如:
- function test(){
- var result=0;
- $.ajax({
- type: "POST",
- url: "ajax/checkfor1.php?action=reg_checkEmail",
- data: {email:email},
- dataType: 'text',
- success: function(data){
- results=data;
- },
- error: function() {
- alert("異常!");
- }
- });
- }
執行時會發現賦不進去值
解決辦法1:將ajax請求設置為同步請求
- function test(){
- var result=0;
- $.ajax({
- type: "POST",
- url: "ajax/checkfor1.php?action=reg_checkEmail",
- data: {email:email},
- dataType: 'text',
- async: false, //設置為同步請求
- success: function(data){
- results=data;
- },
- error: function() {
- alert("異常!");
- }
- });
- }
解決辦法2:不使用js全局變量存數據而是用隱藏的html標簽存數據
- function test(){
- var result=0;
- $.ajax({
- type: "POST",
- url: "ajax/checkfor1.php?action=reg_checkEmail",
- data: {email:email},
- dataType: 'text',
- success: function(data){
- $('#datastore').append('<div data='+data+'></div>');//使用一個div標簽,定義一個自定義屬性data來存儲數據
- },
- error: function() {
- alert("異常!");
- }
- });
- }