InnerHTML Différent entre FF et IE

Fermé
jeff - 26 mai 2010 à 10:49
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 26 mai 2010 à 12:06
Bonjour,

Voila mon problème. Dans une application que je fais, je gère la véracité des valeurs saisies dans des champs par du javascript. Et lorsque qu'une saisie est incorrecte j'affiche dans une div un message expliquant l'erreur. Si la saisie devient correct ensuite, ce message disparait.
Cette fonction en javascript se lance avec un onblur sur l'input
en voici le code:

echo("<input type='text' id='dotHigh' name='dotHigh' value='".$dotgain_array[0]."' onBlur='return verifChamp(this,\"".$lang_ref_field1."\",\"".$lang_ref_err1."\")' onkeypress='return scanKey(event, \"ref\")'/>");

echo("<div id='$lang_ref_err1' style='color : #FF675F;' ></div>");

les variable $lang_ref_... sont des variables récupérer depuis un fichier de lang, mais ce n'est pas la source du problème

Donc le message d'erreur, si il y en a s'affiche dans la div juste en dessous grâce a ma fonction en javascript qui contient ce morceau :

if(chaine==" " ||chaine=="" || chaine <80 || chaine > 100 || chaine.match(exp2))
{
document.getElementById(lang).innerHTML ="Message d'erreur";
return false;
}
else
{
document.getElementById(lang).innerHTML ="";
return true;
}
lang est une variable contenant l'id de la div.

Or mon problème est que sur IE, si la saisie est correct le innerHTML="" garde l'espace qui était dédié au message, qui fait foirer ma mise en page par la suite.
Alors que sur FireFox innerHTML="" remet tout en place et ne laisse pas ce décalage intempestif.

Y a t'il une solution à ce problème?
Merci d'avance.

1 réponse

hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
26 mai 2010 à 10:59
Salut. Quand tu réinitialise a zéro ta div, pense a la masquer et lui donner des valeur nulle ;)
document.getElementById(lang).innerHTML ="";
document.getElementById(lang).style.visibility ="hidden";
document.getElementById(lang).style.display ="hidden";
document.getElementById(lang).style.height ="0px";
document.getElementById(lang).style.width ="0px";


A+
4
Merci beaucoup pour ton aide et ta rapidité de réponse

En fait ce qu'il me manquait était le document.getElementById(lang).style.display ="none";
(au fait c'est none et block les options au passage, et non hidden)

Pour ceux qui auraient le même problème ne pas oublier de mettre
document.getElementById(lang).style.display ="block";
pour que celui ci réapparaisse.

Bonne journée!
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
26 mai 2010 à 12:06
Oui autant pour moi c'était none ;)
0