Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tu choisi, JS créer !

    27 septembre 2006 à 19:14:55

    Bonjour à tous, je vous explique ce que je veux faire, je voudrais que lorsqu'un visiteur fait son choix parmi un type=radio, javascript affiche un nombre de champs html égal au value du bouton radio. Voila ce que j'ai fais :


    <script language="javascript">
    function nb_degrade()
    {
    var nb = document.form_couleur.choix_nb_degrade.value ;
    var boucle = 1 ;
    while( boucle < nb )
    {
    <input onBlur=verif() type="text" size="3" maxlength="3" name="couleur+ boucle + 1" />
    <input onBlur=verif() type="text" size="3" maxlength="3" name="couleur+ boucle + 2" />
    <input onBlur=verif() type="text" size="3" maxlength="3" name="couleur+ boucle + 3" />
    }
    }
    </script>

    1 seul dégradé<input type="radio"name="choix_nb_degrade" value="2" /><br/>
    2 dégradé<input type="radio"name="choix_nb_degrade" value="3" /><br/>
    3 dégradé<input type="radio"name="choix_nb_degrade" value="4" /><br/>
    <input type="button" value="afficher" onClick=nb_degrade()  />


    Le problème est que lorsque je clique sur mon bouton afficher, ben rien ne se passe, 'aji sûrement dû faire des erreurs de syntaxe car je débute en js, au détail: les champs créé doivent s'appeller par exemple "couleur11" pour la première composante de la première couleur, "couleur12" pour la deuxième coposante de 2e couleur et vous devinez que "couleur21" désigne la première composante de la 2e couleur ( je rappel qu'il y a 3 composantes par couleur ^^ ).

    Voila donc si vous pouviez me dire où sont mes erreurs et m'apprendre à faire une syntaxe correcte, merci beaucoup !!

    (EDIT : Notez que pour faire apparaître ces champs je souhaite une methode valide ... )
    • Partager sur Facebook
    • Partager sur Twitter
      27 septembre 2006 à 19:45:17

      Bonsoir

      Ton code devrait partir en boucle infinie (ouf, il plante avant au parsing).

      La boucle serait plutôt:

      boucle = 1;
      while( boucle <= nb ) //Si tu met juste "<" ça va marcher une fois de moins
      {

      boucle++; //Augment boucle de 1 !! Important, sinon la boucle while est infinie !
      }

      (mais perso, j'aurais tendance à utiliser for() au lieu de while() pour éviter d'oublier ça).

      Après à l'intérieur de cette boucle, ça ne va pas du tout :o on ne peut pas direct mettre du code html (dans du javascript).

      Il faut utiliser le dom html pour modifier la page.

      var html = "";//HTML à rajouter
      html += '<input onBlur="verif();" type="text" size="3" maxlength="3" name="couleur'+ (boucle + 1) + '" />';
      //html += pareil mais avec (boucle +2 ) et (boucle + 3)

      document.getElementById('conteneur').innerHTML = html;

      Ou alors, pour que ça soit vraiment valide, utilises les vraies fonctions dom, et lis Ce tutoriel.
      • Partager sur Facebook
      • Partager sur Twitter
        27 septembre 2006 à 20:10:31

        ^Merci bcp pour les infos ! jss pas sur de les voloirs validepuisque la fonction que je créé apparaitra das un pop-up ... MERCI encore ! kiss :p
        • Partager sur Facebook
        • Partager sur Twitter
          27 septembre 2006 à 20:45:41

          Citation : Boo2M0rs0

          //html += pareil mais avec (boucle +2 ) et (boucle + 3)



          Etant donné que t'incrémentes ta variable à chaque passage dans la boucle, tu n'as plus besoin d'ajouter quoi que ce soit. donc '...' + boucle + '...', c'est tout ^^ (En commençant par boucle = 2)
          • Partager sur Facebook
          • Partager sur Twitter
            27 septembre 2006 à 20:56:07

            Aie, nan c'est pas ça Veldryn, normalement mon + sert à concaténer.
            Mais grâce à ta remarque je me suis rendu compte qu'étant donné que boucle et 2 sont des nombres ça va faire une addition donc mon code est faux:
            Ca serait plutôt:

            html += '<input onBlur="verif();" type="text" size="3" maxlength="3" name="couleur'+ (boucle + '' + 1) + '" />';
            //même chose avec (boucle + '' + 2) etc

            Pour chaque boucle il faut écrire 3 champs input (rgb :o).
            • Partager sur Facebook
            • Partager sur Twitter
              27 septembre 2006 à 21:02:00

              Ah oui en effet j'avais pas lu le petit bout de texte plus bas.

              Ceci dit, '...' + boucle + '1', c'est quand même plus propre ^^
              • Partager sur Facebook
              • Partager sur Twitter

              Tu choisi, JS créer !

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown