2016-04-08 4 views
0
 function myValidationAction2(fieldValue){  
     var c=fieldValue; 
     var d1; 

     function foo(callback) 
     { 
      var abc=null; 

      if(window.XMLHttpRequest) // DETECT ALL BROWSER RATHER THEN IE 
      { 
       abc=new XMLHttpRequest(); 
      } 
      else if(window.ActiveXObject) // DETECT IE 
      { 
       abc=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      // SEND REQUEST TO SERVER 
      abc.open("GET","ajax4.php?txt_email="+c); 


      abc.send(); 
      abc.onreadystatechange=function() 
      { 
       if(abc.readyState==4) 
       { 


        callback($(abc.responseText).text()); 


       } 


      } 

     }; 

     foo(function(result) 
     { 
      //here result is display Successfully. 
      //i want to pass result as return of function parent function myValidationAction2..... 
     }); 


    } 

kurz in i Rückkehr wahr oder falsch geben wollen, die in abc.responsetext als erste Zeitfunktion gekommen war ist executed.So i callbcak verwenden Funktion foo die heißt foo (Funktion (Ergebnis)); Das Ergebnis war erfolgreich in Funktion, aber ich möchte nicht das Ergebnis ändern, stattdessen möchte ich das Ergebnis als Rückgabe der Elternfunktion zurückgeben.wie chid Funktion Rückkehr als Rückkehr der Eltern Funktion zu übergeben

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 
<form method="post"> 
 
    <input type="submit" name="submit" id="submit"> 
 
</form> 
 

 
<script type = "text/javascript"> 
 
$(document).ready(function(){ 
 
    
 
    
 
    $("#submit").click(function(){ 
 
    var a=myValidationAction21("hello");//but what if it is callback function how to get return value in variable a 
 
      
 
    alert("a="+a); 
 
    }); 
 
    
 
    function myValidationAction21(fieldValue,callback) { // callback arg. here!! 
 
\t alert("i am execit"); 
 
\t alert("fieldValue"+fieldValue); 
 
\t 
 
    
 
    }; 
 

 
/*my approach for callback is 
 

 
    function myValidationAction21(fieldValue,callback) { // callback arg. here!! 
 
\t alert("i am execit"); 
 
\t callback(fieldvalue); 
 
\t 
 
    
 
    }; 
 
    
 
    var a=myValidationAction21("", function(responseFromFoo) { 
 
     \t \t \t \t return responseFromFoo; 
 
    \t \t \t }); 
 
\t \t \t \t alert("a==="+a);//give UNDEFINED 
 
*/ 
 
    
 

 
\t 
 

 
}); 
 
</script>

Antwort

0

Kurz:

function myValidationAction2(fieldValue, callback) { // callback arg. here!! 

    function foo() { // (not here) 
    var abc=null; 
    if(window.XMLHttpRequest) {  // DETECT ALL 
     abc=new XMLHttpRequest(); 
    }else if(window.ActiveXObject) { // DETECT IE 
     abc=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    // SEND REQUEST TO SERVER 
    abc.open("GET","ajax4.php?txt_email="+ fieldValue); 
    abc.send(); 
    abc.onreadystatechange=function(){ 
     if(abc.readyState==4) { 
     callback($(abc.responseText).text()); 
     } 
    }; 
    } 

    foo(); 

} 

und verwenden wie:

myValidationAction2("someFieldVal", function(responseFromFoo) { 
    console.dir(responseFromFoo); 
}); 
+0

wie rufen? Funktion bitte ausführlich beschreiben – amir

+0

rufe ich wie diese Funktion an – amir

Verwandte Themen