InnerHTML Différent entre FF et IE
jeff
-
hack_net Messages postés 783 Date d'inscription Statut Membre Dernière intervention -
hack_net Messages postés 783 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- InnerHTML Différent entre FF et IE
- Différence entre tcp et udp - Guide
- Difference entre million et milliard - Accueil - Technologies
- Ff gay ✓ - Forum Twitter
- Erreur 20 ff free - Forum Freebox
- Ie tab - Télécharger - Outils pour navigateurs
1 réponse
Salut. Quand tu réinitialise a zéro ta div, pense a la masquer et lui donner des valeur nulle ;)
A+
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+
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!