Ciao ragazzi!
Ancora una volta IE7 fa i capricci...
Provo a spiegarvi la situazione. In una pagina c'è un suggeritore tipo google suggest a partire dal quale viene selezionato il nome di una persona. Quando questa viene selezionata, una funzione in ajax recupera i dati della persona e li mostra subito a schermo tramite l'inner HTML.
Mentre su Firefox funziona tutto correttamente, su IE7 appare "Error reading the response [object error]]". Il problema è legato ai campi in cui ci sono i contatti, che vi allego.
codice:
<fieldset>
<legend>Contatti</legend>
<div id="email"><label for="dati_email">Email</label><input id="dati_email" name="dati_email" type="text" value="" READONLY/></div>
<div id="telefono_fisso"><label for="dati_telefono_fisso">Telefono fisso</label><input id="dati_telefono_fisso" name="dati_telefono_fisso" type="text" value="" READONLY/></div>
<div id="telefono_cellulare"><label for="dati_telefono_cellulare">Dati telefono cellulare</label><input id="dati_telefono_cellulare" name="dati_telefono_cellulare" type="text" value="" READONLY/></div>
<div id="fax"><label for="dati_email">Email</label><input id="dati_fax" name="dati_fax" type="text" value="" READONLY/></div>
</fieldset>
ecco la funzione incriminata in ajax
codice:
function handleServerResponseDatiRubrica()
{
// read the message from the server
var xmlResponse = xmlHttp2.responseXML;
// obtain the XML's document element
xmlRoot = xmlResponse.documentElement;
//sto omettendo il codice degli altri campi perché funzionano
//recupero i valori di email e li stampo su schermo
emailRubrica = xmlRoot.getElementsByTagName("email");
email = document.getElementById("email");
//sembra che non vada bene la riga precedente perché il codice successivo a questo commento non viene eseguito
n = 1;
email.innerHTML = '';
for(var i=0; i<emailRubrica.length; i++){
num_email = (n>1) ? n : '';
input = '<div><label for="email_'+ n +'">Email '+ num_email +'</label><input id="email_'+ n +'" name="email_'+ n +'" type="text" value="'+ emailRubrica.item(i).firstChild.data +'" READONLY/></div>';
n = n + 1;
email.innerHTML += input;
}
//recupero i valori di telefono fisso e li stampo su schermo
telefonoFissoRubrica = xmlRoot.getElementsByTagName("telefono_fisso");
telefono_fisso = document.getElementById("telefono_fisso");
n = 1;
telefono_fisso.innerHTML = '';
for(var i=0; i<telefonoFissoRubrica.length; i++){
num_telefono_fisso = (n>1) ? n : '';
input = '<div><label for="telefono_fisso_'+ n +'">Telefono fisso '+ num_telefono_fisso +'</label><input id="telefono_fisso_'+ n +'" name="telefono_fisso_'+ n +'" type="text" value="'+ telefonoFissoRubrica.item(i).firstChild.data +'" READONLY/></div>';
n = n + 1;
telefono_fisso.innerHTML += input;
}
//recupero i valori di telefono cellulare e li stampo su schermo
telefonoCellulareRubrica = xmlRoot.getElementsByTagName("telefono_cellulare");
telefonoCellulare = document.getElementById("telefono_cellulare");
n = 1;
telefonoCellulare.innerHTML = '';
for(var i=0; i<telefonoCellulareRubrica.length; i++){
num_telefono_cellulare = (n>1) ? n : '';
input = '<div><label for="telefono_cellulare_'+ n +'">Telefono cellulare '+ num_telefono_cellulare +'</label><input id="telefono_cellulare_'+ n +'" name="telefono_cellulare_'+ n +'" type="text" value="'+ telefonoCellulareRubrica.item(i).firstChild.data +'" READONLY/></div>';
n = n + 1;
telefonoCellulare.innerHTML += input;
}
//recupero i valori di fax e li stampo su schermo
faxRubrica = xmlRoot.getElementsByTagName("fax");
fax = document.getElementById("fax");
n = 1;
fax.innerHTML = '';
for(var i=0; i<faxRubrica.length; i++){
num_fax = (n>1) ? n : '';
input = '<div><label for="fax_'+ n +'">Fax '+ num_fax +'</label><input id="fax_'+ n +'" name="fax_'+ n +'" type="text" value="'+ faxRubrica.item(i).firstChild.data +'" READONLY/></div>';
n = n + 1;
fax.innerHTML += input;
}
}
Grazie