JavaScrpt - CSS

Résolu
lucvanbird -  
dameginettedleville Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un évaluateur d'expression JS. J'aimerais simplement que le message d'erreur soit de couleur rouge. Cependant, je ne parviens pas à implanter du css dans mon code JS ci-dessous.

Merci beaucoup pour votre aide !!!

<body>
<form action="#" id="evalExpr">
<div id="message">
</div>
<p>
<label for="expr">Expression
<input type="text" name="exemple" id="expr" tabindex="1" />
</label>
</p>
<div id="piedForm">
<input type="submit" name="Envoyer"/>
<input type="reset" name="Annuler"/>
</div>
</form>

var msgInit;
window.onload = initialiser;

function initialiser() {
msgInit=document.getElementById("message").innerHTML; //sauvez msg initial
document.getElementById("evalExpr").onsubmit = evaluer; //e-e-r
document.getElementById("expr").onfocus = effacerRes;
document.getElementById("expr").focus(); // met le focus dans le champ
document.getElementById("evalExpr").reset; //remise à zéro du form à chaque reload
}

function evaluer() {
var res; var msg="Entrez une expression";
var entree = document.getElementById("expr").value; //saisir l'expressions dans le champ de saisie
if (entree !=""); //ok
res = eval(entree); //evaluer expr / si non vide
msg="L'expression " + entree + " vaut " + res + " (de type > \" " + typeof res + "\")";
document.getElementById("message").innerHTML=msg; //afficher dans la page
return false;
}

function effacerRes() {
document.getElementById("message").innerHTML=msgInit;
this.value="";

4 réponses

  1. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    salut,

    avec :
    document.getElementById("message").style.color = '#F00';

    et pour les autres propriétés CSS, en générale c'est identique, suffit de mettre une majuscule si il y a deux mots dans la propriété CSS :
    document.getElementById("message").style.backgroundColor = '#000';
    2
    1. lucvanbird
       
      Merci beaucoup pour ta réponse rapide !

      J'ai maintenant un autre problème. Quand l'utilisateur n'inscrit rien dans le champ, il est indiqué "L'expression vaut undefined (de type > " undefined")" Or je dois obtenir "Entez une expression!" et c'est ce message qui doit figurer en rouge.
      0
  2. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    formate et indente ton code, tu trouveras plus facilement les erreurs.
    il y avait un point-virgule au bout du 'if()' et l'accolade de la fonction était pas fermée.
    pour formater le code sur le forum, c'est avec ce bouton.
    function evaluer()
    {
    	var res;
    	var msg="Entrez une expression";
    	var entree = document.getElementById( "expr" ).value;
    	if( entree.length > 0 )
    	{
    		res = eval( entree );
    		msg="L'expression " + entree + " vaut " + res + " (de type > \" " + typeof res + "\")";
    		document.getElementById( "message" ).innerHTML=msg; 
    		return false;
    	}
    	else
    	{
    		document.getElementById( "message" ).innerHTML=msgInit;
    		document.getElementById( "message" ).style.color = '#F00';
    	}
    }
    2
    1. dameginettedleville Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
       
      J'ai bien suivi tes précieux conseils. ça marche !

      encore merci !
      0
  3. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    if (entree.length > 0); // <--  MODIF 
    res = eval(entree); //evaluer expr / si non vide
    msg="L'expression " + entree + " vaut " + res + " (de type > \" " + typeof res + "\")";
    document.getElementById("message").innerHTML=msg; //afficher dans la page
    return false;
    }
    else
    {
    document.getElementById("message").innerHTML='Entrez une valeur';
    }
     
    0
    1. dameginettedleville Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
       
      ça ne fonctionne plus. Le validateur m'indique une erreur au niveau du "else".
      0
  4. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    l'accolade du 'if()' est pas ouverte…
    if (entree.length > 0)
    {
    res = eval(entree); //evaluer expr / si non vide
    msg="L'expression " + entree + " vaut " + res + " (de type > \" " + typeof res + "\")";
    document.getElementById("message").innerHTML=msg; //afficher dans la page
    return false;
    }
    else
    {
    document.getElementById("message").innerHTML='Entrez une valeur';
    }
    0
    1. dameginettedleville Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
       
      malheureusement il n'y a toujours rien..

      voici toujours un nouvelle copie, si tu as le courage....

      var msgInit;
      window.onload = initialiser;

      function initialiser() {
      msgInit=document.getElementById("message").innerHTML; //sauvez msg initial
      document.getElementById("evalExpr").onsubmit = evaluer; //e-e-r
      document.getElementById("expr").onfocus = effacerRes;
      document.getElementById("expr").focus(); // met le focus dans le champ
      document.getElementById("evalExpr").reset; //remise à zéro du form à chaque reload
      }

      function evaluer() {
      var res; var msg="Entrez une expression";
      var entree = document.getElementById("expr").value; //saisir l'expressions dans le champ de saisie
      if (entree.length > 0); //* !=" "); //ok
      {
      res = eval(entree); //evaluer expr / si non vide
      msg="L'expression " + entree + " vaut " + res + " (de type > \" " + typeof res + "\")";
      document.getElementById("message").innerHTML=msg; //afficher dans la page
      return false;
      }
      else
      {
      document.getElementById("message").innerHTML=msgInit;
      document.getElementById("message").style.color = '#F00';
      }

      function effacerRes() {
      document.getElementById("message").innerHTML=msgInit;
      this.value="";
      }
      0