Problème de javascript

Résolu/Fermé
Coutcout86 Messages postés 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016 - Modifié par jordane45 le 19/02/2015 à 12:41
Coutcout86 Messages postés 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016 - 19 févr. 2015 à 15:27
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
19 févr. 2015 à 12:59
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 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
19 févr. 2015 à 14:58
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
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 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
19 févr. 2015 à 15:27
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