Problème de javascript

Résolu
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

  1. Modérateur
    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";
       }
    }
    

    1. 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.
  2. 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">
    .
    1. 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 !!