Boutons radio et attribut name : gros soucis :(

Résolu
chino18 Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 avril 2011 - 16 mars 2007 à 14:50
chino18 Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 avril 2011 - 16 mars 2007 à 17:41
Bonjour!

Je génère dynamiquement des boutons radios grâce à ma chaîne récupérée de ma requête AJAX:





// on découpe la chaîne récupérée
// (du style val1|libellee1|val2|libelle2|...)


var arrayFormule_cases = chaine_recup.split('|');



// on récupère l'id du TD dans lequel on construit les cases



var td_cases = document.getElementById('ma_case');
         
                   


// On génère les boutons radio

for( var cpt_list = 0; cpt_list < arrayFormule_cases.length; cpt_list+=2)
{
   if(arrayFormule_cases[cpt_list])
   {
     
      var input_case = document.createElement('input');
      var span_case = document.createElement('span');
      var br_case = document.createElement('br');


                           
      input_case.type = 'radio';
      input_case.id = 'radio_'+(cpt_list/2);

                           

      // on donne le nom du bouton radio

      //
on aurait pu faire également


      // input_case.setAttribute('name', 'radiotest'
);


      input_case.name = 'radiotest';
                           
      input_case.value = arrayFormule_cases[cpt_list];
                           
      span_case.innerHTML = arrayFormule_cases[cpt_list+1];
                           
      td_cases.appendChild(input_case);
      td_cases.appendChild(span_case);
      td_cases.appendChild(br_case);
       
   }
}


                   




     
                   


Tous mes boutons radios sont créés correctement. Enfin c'est ce que je croyais au départ. Car cette c*nnerie d'attribut "name" ne veut pas s'ajouter .
Du coup mes boutons radios ne servent absolument à rien. Rien ne passe au moment du click (chaque radio reste désélectionné). Normal puisque c'est l'attribut name qui permet d'attribuer un bouton radio à un même "groupe".

Je peux tout créer, même un attribut 'tartempion' si ça me chante, mais pour le "name" c'est niet!!

A l'aide!! je commence à perdre la têêteeuuuu!!







-- message approuvé par Jean-Claude Van Damme --

2 réponses

chino18 Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 avril 2011 1
16 mars 2007 à 17:41
Merci PetoleTeam mais ça ne marche pas mieux.

Entre temps, j'ai trouvé une solution (bien dégueulasse ) qui consiste à stocker dans une chaîne tout le code HTML de ce que j'ai à placer dans ma case (inputs, libellés, etc..).

Ensuite je fais un td_cases.innerHTML = chaine_contenu;

La ça marche bien. Mais bon j'aurais bien voulu me servir du DOM.

Si personne ne voit d'autre solution je crois que je vais garder cette méthode...

-- message approuvé par Jean-Claude Van Damme --
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 mars 2007 à 16:29
B
onjour...
Essaies d'affecter le nom sur l'objet crée dans le document...

   if(arrayFormule_cases[cpt_list]){
      var input_case = document.createElement('input');
      var span_case = document.createElement('span');
      var br_case = document.createElement('br');

      input_case.type = 'radio';
      input_case.id = 'radio_'+(cpt_list/2);

      input_case.value = arrayFormule_cases[cpt_list];
      span_case.innerHTML = arrayFormule_cases[cpt_list+1];
 
      td_cases.appendChild(input_case);
      td_cases.appendChild(span_case);
      td_cases.appendChild(br_case);
      //-- ICI --
      // on donne le nom du bouton radio
      // on aurait pu faire également
      // input_case.setAttribute('name', 'radiotest'); 
      input_case.name = 'radiotest';
   }

;0)
0
Rejoignez-nous