解決ajax無法給js全局變量賦值的問題


解決ajax無法給js全局變量賦值的問題


http://blog.csdn.net/qq_26222859/article/details/51543433

 

ajax中是無法給js中的全局變量賦值的,因為ajax默認是異步請求(當要賦值時,此時的值沒有拿到,所以賦值不成功)。例如:

  1. function test(){
  2.   var result=0;
  3.   $.ajax({  
  4. type: "POST",  
  5. url: "ajax/checkfor1.php?action=reg_checkEmail",          
  6. data: {email:email},   
  7. dataType: 'text',     
  8. success: function(data){                                                      
  9. results=data;  
  10. },  
  11. error: function() {     
  12.                alert("異常!");    
  13.       }    
  14. });
  15. }

 

執行時會發現賦不進去值

解決辦法1:將ajax請求設置為同步請求

  1. function test(){
  2.   var result=0;
  3.   $.ajax({  
  4. type: "POST",  
  5. url: "ajax/checkfor1.php?action=reg_checkEmail",          
  6. data: {email:email},   
  7. dataType: 'text',     
  8.       async: false, //設置為同步請求
  9. success: function(data){                                                      
  10. results=data;  
  11. },  
  12. error: function() {     
  13.                alert("異常!");    
  14.       }    
  15. });
  16. }

解決辦法2:不使用js全局變量存數據而是用隱藏的html標簽存數據

  1. function test(){
  2.   var result=0;
  3.   $.ajax({  
  4. type: "POST",  
  5. url: "ajax/checkfor1.php?action=reg_checkEmail",          
  6. data: {email:email},   
  7. dataType: 'text',     
  8. success: function(data){                                                      
  9.               $('#datastore').append('<div data='+data+'></div>');//使用一個div標簽,定義一個自定義屬性data來存儲數據
  10. },  
  11. error: function() {     
  12.                alert("異常!");    
  13.       }    
  14. });
  15. }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM