Problème de javascript

Résolu
Coutcout86 Messages postés 219 Statut Membre -  
Coutcout86 Messages postés 219 Statut Membre -
Bonjour,

Je souhaite faire un test sur des listes déroulantes (pour savoir si une valeur à été renseignée) et je suis en train de faire un script en Javascript. Le voici :

       var test = '1';
       var puissanceDiplomeObtenu = Math.pow(2,0);
        var puissanceActiviteNAR4 = Math.pow(2,0);
        var puissanceSpecialiteRecherche = Math.pow(2,0);
        var tabSelect = {
          diplome: "'"+puissanceDiplomeObtenu+"'",
          activiteNAR4 : "'"+puissanceActiviteNAR4+"'",
          sous_activite1 : "'"+puissanceSpecialiteRecherche+"'"
        }
        for( var idSelect in tabSelect)
        {
           if(tabSelect[idSelect] == test)
           {
              alert("Je suis là");
              document.getElementById("'"+idSelect+"'").style.border= "1px solid red";
           }
          alert(tabSelect[idSelect]);
          /*alert( "Certains champs sont requis lors de la création d'un repreneur.\nVeuillez complétez le formulaire" );*/
          return false;
        }
        
      }


Sauf que j'ai un soucis je ne rentre jamais dans ma condition SI (avec mon alert ''Je suis là'') alors que mes variables ( Math.pow(2,0)) sont égales à 1 je ne comprends pas pourquoi je ne rentre pas dans mon SI et je m'arrache les cheveux !! :)

Pourriez-vous m'éclaircir sur ma problématique ?

Merci d'avance.

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Bonjour,

var test = "1";
var puissanceDiplomeObtenu = Math.pow(2,0);
var puissanceActiviteNAR4 = Math.pow(2,0);
var puissanceSpecialiteRecherche = Math.pow(2,0);
var tabSelect = {
  diplome: puissanceDiplomeObtenu,
  activiteNAR4 : puissanceActiviteNAR4,
  sous_activite1 : puissanceSpecialiteRecherche
}

for( var idSelect in tabSelect) {
   if( (tabSelect[idSelect]) == test ){
     alert("Je suis là");
     document.getElementById("'"+idSelect+"'").style.border= "1px solid red";
   }
}

0
Coutcout86 Messages postés 219 Statut Membre
 
Cela fonctionne en revanche quand j'enlève le ''alert'' la modification de style ne se fait pas sur les id souhaités. D'ailleurs elle se fait nulle part.

Auriez-vous une solution ?

Merci d'avance.
0
Utilisateur anonyme
 
Bonjour

 document.getElementById("'"+idSelect+"'").style.border= "1px solid red";

Tu as le même problème que dans l'écriture de tabSelect : tu ajoutes des "'" alors que ces apostrophes ne font pas partie de l'id.
Il fallait écrire
 document.getElementById(idSelect).style.border= "1px solid red";


Le code que tu avais écrit modifiait le border de
<div id="'diplome'">
alors que toi tu veux modifier celui de
<div id="diplome">
.
0
Coutcout86 Messages postés 219 Statut Membre
 
Effectivement ça marche.

J'étais juste convaincu que sans les "'" le
<div id="diplome">
serait écrit comme ça
<div id=diplome>
et je pensais que c'était le problème mais apparemment non.

Merci pour toutes ces informations !! :)

Bon courage et à bientôt !!
0