Следующая функция добавляет новый текстовый ввод после каждого флажка, когда он установлен, и удаляет ввод текста, когда флажок снят. Имя ввода текста основано на имени этого флажка.
jQuery(function($){
var key = 'checkbox-master';
$('input:checkbox').click(function(){
var self = $(this);
var next = self.next();
if (this.checked){
if (next.data(key)!=this){
var n = this.name+'-text';
self.after($('<input type="text" name="'+n+'">').data(key,this););
}
}else{
if (next.data(key)==this) next.remove();
}
});
});
Интересно, если вы действительно хотите этого, однако, вместо того, чтобы просто динамически показывая и скрывая некоторые предварительно созданные текстовые материалы, которые имеют имена, которые вы хотите. Это было бы более чистым, если бы текстовые входы всегда были сразу же после флажков в коде:
jQuery(function($){
$('input:checkbox').click(function(){
$(this).next()[this.checked ? 'show' : 'hide']();
});
});