Téléchargement
illégal
Posez votre question Signaler

InnerHTML Différent entre FF et IE

jeff - Dernière réponse le 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.
Lire la suite 

InnerHTML Différent entre FF et IE »

3 réponses
Réponse
+4
moins plus
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+
jeff - 26 mai 2010 à 11:55
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!
hack_net- 26 mai 2010 à 12:06
Oui autant pour moi c'était none ;)
Ajouter un commentaire
Ce document intitulé « innerHTML Différent entre FF et IE » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?