Tengo un formulario con varios campos y una de las posiblidades es agregar n campos de tipo file, cada uno acompañado de un textarea para agregar una descripción. No utilicé DOM porque el formulario está dentro de una tabla con estilos y demás y me resultaba muy complicado maquetar los datos de esa manera.
El problema es que al agregar un nuevo campo file pierdo los datos que ya se cargaron en los otros file, no así en los textarea.
Les paso el código y me dan una mano?
Muchas gracias desde ya.
formulario.asp
<tr>
<td colspan=3>
<div id="slides"></div>
<label style="cursor:hand" onclick="addSlide(1)">[AGREGAR SLIDE]</label>
</td>
</tr>
validador.js
function addSlide(i){
if(i==1){ //extra
var extras = parseInt(document.all('totslides').value) - 3; //resto las 3 que aparecen por defecto
i = extras + 4;
document.all('totslides').value = parseInt(i)
}
var nuevoslide = '<div id="divSlides"'+i+' style="display:block">';
nuevoslide += '<table id="tablaSlides"'+i+' width="100%" border="0" cellpadding="2" cellspacing="0">';
nuevoslide += '<tr>';
nuevoslide += '<td class=cabecera valign=top width=22%>';
nuevoslide += 'Slide ' + i;
nuevoslide += '</td>';
nuevoslide += '<td valign=top>';
nuevoslide += '<input type=file name="s'+i+'" size=66>';
nuevoslide += '<label id="lb_slide'+i+'" style="display:none"><font id=error>Debe adjuntar un archivo</font></label>';
nuevoslide += '<label id="lb_file'+i+'" style="display:none"><font id=error>Sólo puede adjuntar archivos GIF, JPG o JPEG</font></label>';
nuevoslide += '</td>';
nuevoslide += '</tr>';
nuevoslide += '<tr>';
nuevoslide += '<td class=cabecera valign=top>';
nuevoslide += 'Descripción slide '+i+':';
nuevoslide += '</td>';
nuevoslide += '<td>';
nuevoslide += '<textarea name="txt_descrip'+i+'" class=text cols=50 rows=4></textarea>';
nuevoslide += '<label id="lb_descrip'+i+'" style="display:none"><font id=error>Complete este campo</font></label>';
nuevoslide += '</td>';
nuevoslide += '</tr>';
nuevoslide += '</table>';
nuevoslide += '</div>';
document.all('slides').innerHTML += nuevoslide
}