2009-03-31 3 views
0

У меня есть проект, где мне нужно предоставить пользователям несколько разных наборов переключателей на основе заданного значения, которое они выбирают в выпадающем меню.создание динамической радио кнопки w/JQuery

Например ..

<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> 

Я просто хотел бы добавить/удалить варианты либо из списков (или обоих) вариантов радио каждый раз, когда они делают различный выбор.

+0

маленькая точка, но для действительного XHTML ваши
s должно быть действительно
s. – da5id

ответ

1

Вы можете просто сделать это:

$(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 '); 
    }); 
}); 

Это dynamically creating новый вход и вставив его afterlast radio внутри #abc элемента.

+0

Я думаю, что это именно то, что я ищу. Однако я не могу заставить его работать. Нет ошибок или чего-то еще .. просто не добавляется опция радио. – 2009-03-31 20:51:02

+0

Вышлите мою последнюю версию? Я тестировал его на странице с HTML, который у вас есть, и он работает. –

+0

да, я понял .. но по какой-то причине он, похоже, не хочет работать. Любые идеи, что это может быть на моем конце? – 2009-03-31 21:10:45

0

С поста Паоло Bergantino Попытаемся вместо:

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

Эта:

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