, если вам не нужно поддерживать старый браузер и вы можете вставить свой входной текст, уже спрятанный на своей странице, тогда я предлагаю альтернативный чисто простой подход CSS, см. http://jsfiddle.net/wfwye/2/
<fieldset>
<input type="radio" name="myradio" /><br>
<input type="radio" name="myradio" /><br>
...
<input type="text" />
</fieldset>
иcss
[type="radio"] ~ [type="text"] { visibility: hidden; }
[type="radio"]:checked ~ [type="text"] { visibility: visible; }
Я использовал здесь общий селектор брата (MDN) (~)
.
К сожалению, :checked
псевдокласс не поддерживается IE <9 </p>
В противном случае «обычное» решение javascript довольно простое: если у вас есть
<fieldset>
<input type="radio" name="myradio" /><br>
<input type="radio" name="myradio" /><br>
</fieldset>
с использованием jQuery 1.7+, задача может быть выполнена следующим образом
$('input').on('click.appendInput', function() {
$('<input type="text">').appendTo($(this).parent());
$('input').unbind('click.appendInput');
});
unbind()
в противном случае каждый раз, когда вы нажимаете на радиовход, вы добавляете новый текст (я не думаю, что вы хотите)