Salve a tutti,
sto effettuando delle prove in Javascript e non riesco a far restituire il valore "true" o "false" alla funzione checkData().
Cosa sbaglio?
Mi sembra di aver definito una variabile globale err, inizializzata a false che viene cambiata in caso di necessità dalla funzione updatepage().
Posto il codice:

codice:
function checkData() {
   var xmlHttpReq = false;
   var self = this;
   //Url da richiamare
   var strURL="registrationCheck"
   var err=false;

   // Mozilla/Safari
   if (window.XMLHttpRequest) {
      self.xmlHttpReq = new XMLHttpRequest();
   }
   // IE
   else if (window.ActiveXObject) {
      self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
   }
   self.xmlHttpReq.open('POST', strURL, true);
   self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

   self.xmlHttpReq.onreadystatechange = function() {
      if (  (self.xmlHttpReq.readyState == 4) ){
         //Aggiorna solo se il server restituisce il codice 200 (Ok) 
         if(self.xmlHttpReq.status == '200')
         {
            //updatepage Modifica la variabile err
            updatepage(self.xmlHttpReq.responseText);
         }
         else //Errore nella richiesta
         {
           var str='<span class="red">';
           str+="Impossibile contattare il server. Il server è fuori servizio oppure non sei connesso ad Internet";
           str+='</span';
           updatepage(str);
         }
      }
   }
   self.xmlHttpReq.send(getquerystring());
   return err;
}

function updatepage(str){
  //Divida la stringa in st1...str4
  var stringhe=str.split('#',6);
  var ris= new Array("result1","result2","result3","result4");

  var i=0;
  for (i=0; i< ris.length; i++)
  {
     document.getElementById(ris[i]).innerHTML = stringhe[i];
  }
  if (stringhe[4]=='true')
  {
     err=true;
  }
  else
  {
     err=false;
  }
}