2009-03-31 9 views
0

J'ai un projet dans lequel je dois donner aux utilisateurs plusieurs ensembles d'options de boutons radio différents en fonction d'une valeur donnée qu'ils sélectionnent dans un menu déroulant.Création d'un bouton radio dynamique avec JQuery

Par exemple ..

<select id="aaa"> 
<option>red</option> 
<option>blue</option> 
<option>other</option> 
</select> 

<div id="abc"> 
Input<BR> 
option 1 <input type="radio" name="colorinput" value="1" /> 
option 2 <input type="radio" name="colorinput" value="2" /> 
</div> 
<BR> 
<div id="def"> 
Description<BR> 
option 1 <input type="radio" name="colordesc" value="1" /> 
option 2 <input type="radio" name="colordesc" value="2" /> 
</div> 
<BR> 

Je voudrais simplement ajouter/supprimer des options de (ou les deux) listes d'options de radio chaque fois qu'ils font une autre sélection.

+0

petit point, mais pour XHTML valide vos
s devrait vraiment être
s. – da5id

Répondre

1

Vous pouvez simplement le faire:

$(document).ready(function() { 
    // add a new input when a new color is chosen, for example 
    $('#aaa').change(function() { 
     var radio = $('<input>').attr({ 
      type: 'radio', name: 'colorinput', value: '3' 
     }); 
     $(':radio:last-child', '#abc').after(radio).after('option 3 '); 
    }); 
}); 

Il est dynamically creating une nouvelle entrée et l'insérer after l'last radio intérieur de l'élément #abc.

+0

Je pense que c'est exactement ce que je cherche. Cependant, je n'arrive pas à le faire fonctionner. Aucune erreur ou quoi que ce soit .. n'ajoute pas l'option radio. –

+0

Avez-vous eu ma dernière révision? Je l'ai testé sur une page avec le code HTML que vous avez et cela fonctionne. –

+0

oui je l'ai eu .. mais pour une raison quelconque, il ne semble pas vouloir travailler. Des idées pour ce que ça pourrait être de mon côté? –

0

De Paolo poste de Bergantino essayer au lieu de:

$(':radio:last-child', '#abc').after(radio).after('option 3 '); 

Ce:

$(':radio:last-child', '#abc').after(radio).after('option:eq(2)');