Código javascript:
Ver original
var numero = 0; t = function (tag) { // Crea un text return document.createTextNode(tag); } c= function (tag) { // Crea un elemento return document.createElement(tag); } d = function (id) { // Retorna un elemento en base al id return document.getElementById(id); } e = function (evt) { // Retorna el evento return (!evt) ? event : evt; } f = function (evt) { // Retorna el objeto que genera el evento return evt.srcElement ? evt.srcElement : evt.target; } addField = function () { //Contenedor div container = d('files'); //Span para cada archivo span = c('SPAN'); span.className = 'file'; span.id = 'file' + (++numero); //Texto e input del file t_archivo = t('Archivo:'); field = c('INPUT'); field.name = 'archivo[]'; field.type = 'file'; //Link para eleminar a = c('A'); a.name = span.id; a.href = '#'; a.onclick = removeField; a.innerHTML = 'Quitar el archivo #' + numero; //Select de tipo de papel t_tipo = t('Tipo de Papel:'); tipopapel= c('select'); tipopapel.name = 'tipopapel[]'; t_option1 = c('option'); t_option1.innerHTML= ""; t_option1.value = '#'; tipopapel.appendChild(t_option1); t_option13 = c('option'); t_option13.innerHTML= "Cartulina Sulfatada 1 Cara 12 pts."; t_option13.value = 'Cartulina Sulfatada 1 Cara 12 pts'; tipopapel.appendChild(t_option13); t_option14 = c('option'); t_option14.innerHTML= "Cartulina Sulfatada 1 Cara 14 pts."; t_option14.value = 'Cartulina Sulfatada 1 Cara 14 pts'; tipopapel.appendChild(t_option14); t_option15 = c('option'); t_option15.innerHTML= "Cartulina Sulfatada 2 Caras 12 pts."; t_option15.value = 'Cartulina Sulfatada 2 Caras 12 pts'; tipopapel.appendChild(t_option15); t_option16 = c('option'); t_option16.innerHTML= "Albanene 140 gr."; t_option16.value = 'Albanene 140 gr'; tipopapel.appendChild(t_option16); t_option2 = c('option'); t_option2.innerHTML= "Opalina Blanca 120 gr"; t_option2.value = 'Opalina 120 gr'; tipopapel.appendChild(t_option2); t_option11 = c('option'); t_option11.innerHTML= "Opalina Blanca 150 gr"; t_option11.value = 'Opalina 150 gr'; tipopapel.appendChild(t_option11); t_option12 = c('option'); t_option12.innerHTML= "Opalina Blanca 225 gr"; t_option12.value = 'Opalina 225 gr'; tipopapel.appendChild(t_option12); t_option3 = c('option'); t_option3.innerHTML= "Couche"; t_option3.value = 'Couche'; tipopapel.appendChild(t_option3); t_option6 = c('option'); t_option6.innerHTML= "Bond Blanco 90 gr"; t_option6.value = 'Bond 90 gr'; tipopapel.appendChild(t_option6); t_option7 = c('option'); t_option7.innerHTML= "Bond Blanco 120 gr"; t_option7.value = 'Bond 120 gr'; tipopapel.appendChild(t_option7); t_option4 = c('option'); t_option4.innerHTML= "Couche Adhesivo Mate"; t_option4.value = 'Couche Adhesivo Mate'; tipopapel.appendChild(t_option4); t_option5 = c('option'); t_option5.innerHTML= "Couche Adhesivo Satin"; t_option5.value = 'Couche Adhesivo Satin'; tipopapel.appendChild(t_option5); t_option8 = c('option'); t_option8.innerHTML= "Lustrolito 255 gr"; t_option8.value = 'Lustrolito 255 gr'; tipopapel.appendChild(t_option8); t_option9 = c('option'); t_option9.innerHTML= "Lustrolito 180 gr"; t_option9.value = 'Lustrolito 180 gr'; tipopapel.appendChild(t_option9); t_option9 = c('option'); t_option9.innerHTML= "Lustrolito 150 gr"; t_option9.value = 'Lustrolito 150 gr'; tipopapel.appendChild(t_option9); t_option10 = c('option'); t_option10.innerHTML= "Lustrolito 100 gr"; t_option10.value = 'Lustrolito 100 gr'; tipopapel.appendChild(t_option10); //Select de tamaño t_size = t('Tamaño:'); size = c('select'); size.name = 'size[]'; s_option0 = c('option'); s_option0.innerHTML= ""; s_option0.value = '#'; size.appendChild(s_option0); s_option1 = c('option'); s_option1.innerHTML= "Carta"; s_option1.value = 'Carta'; size.appendChild(s_option1); s_option2 = c('option'); s_option2.innerHTML= "Oficio"; s_option2.value = 'Oficio'; size.appendChild(s_option2); s_option3 = c('option'); s_option3.innerHTML= "Tabloide"; s_option3.value = 'Tabloide'; size.appendChild(s_option3); s_option4 = c('option'); s_option4.innerHTML= "Tabloide Rebasado"; s_option4.value = 'Tabloide Rebasado'; size.appendChild(s_option4); //Cantidad t_canti = t('Cantidad:'); canti = c('INPUT'); canti.name = 'cantidad[]'; canti.type = 'text'; //Comentario t_comment = t('Especificaciones:'); comment = c('textarea'); comment.name = 'comment[]'; //INICIA CHILDS br = c('<br>'); span.appendChild(br); span.appendChild(a); br = c('<br>'); span.appendChild(br); span.appendChild(t_archivo); span.appendChild(field); br = c('<br>'); span.appendChild(br); span.appendChild(t_tipo); span.appendChild(tipopapel); br = c('<br>'); span.appendChild(br); span.appendChild(t_size); span.appendChild(size); br = c('<br>'); span.appendChild(br); span.appendChild(t_canti); span.appendChild(canti); br = c('<br>'); span.appendChild(br); span.appendChild(t_comment); span.appendChild(comment); br = c('<br>'); span.appendChild(br); br = c('<br>'); span.appendChild(br); container.appendChild(span); br = c('<br>'); span.appendChild(br); } //Remove Childs removeField = function (evt) { lnk = f(e(evt)); span = d(lnk.name); span.parentNode.removeChild(span); }
basicamente el html:
<div id="files"></div>
<a href="#" onClick="addField()">Agregar otro archivo</a><br>
dentro de un form.
De nuevo gracias.