Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/06/2010, 03:09
Ondetaper
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Error en input file dinamico

Gracias de nuevo caricatos!

La verdad es que no me di cuenta de que ya me habías puesto el ejemplo, lo siento. me he creado un formulario nuevo con el input.

Código HTML:
<FORM id="formClone" name="formClone">
  <INPUT name="fichero" id="fichero" type="file" value="" />
</FORM> 
Y he cambiado la función javascript por:

Código:
function aniadirFilaFichero(fileTable, numRow)
{
	// Creo nueva fila para el fichero
	var trFile = fileTable.insertRow(numRow);
	trFile.id = "filaFichero_" + numRow;
	trFile.style.display = "block";
	// Creo las columna para eliminar el fichero
	var tdFile1 = trFile.insertCell(trFile.cells.length);
	tdFile1.width = "30px";
	tdFile1.align = "center";
	tdFile1.num = numRow;
	tdFile1.onmouseover = function(){ mbuttonOver('trash', this.num); };
	tdFile1.onmouseout = function(){ mbuttonOut('trash', this.num); };
	// Creo la imagen para borrar el fichero en la celda
	var img = document.createElement("IMG");
	img.id = "trash." + numRow + ".img";
	img.num = numRow;
	img.title = "Eliminar";
	img.src = '<%=path%>' + "/img/icons/trash.gif";
	img.onclick = function() { eliminarFicheroLista(this.num); };
	tdFile1.appendChild(img);
	// Creo la columna para el nombre del fichero
	var tdFile2 = trFile.insertCell(trFile.cells.length);
	tdFile2.noWrap = "nowrap";
	tdFile2.title = "";
/*	// Creo el campo para el nombre del fichero
	var span = document.createElement("SPAN");
	span.id = "spanFicheroNombre_" + numRow;
	span.style.width = "600px";
	tdFile2.appendChild(span);
*/	// Creo el el input para guardar el file
	var input = document.formClone.fichero.cloneNode(true);
	input.id = 'fichero_' + numRow;

	tdFile2.appendChild(input);
}
Ahora ya me pone en el campo file el atributo name

Pero ahora me viene el segundo problema.... el evento click del botón file también lo hago desde javascript ya el botón que se pulsa es otro, que lo que hace es llamar a la función anterior y simular el evento click del file:

Código HTML:
function relacionarFicheroNuevo()
{
	// Cargo la tabla de ficheros
	var fileTable = document.getElementById('listaFicherosTable');
	var numRow = fileTable.rows.length;
	// Añado la nueva fila
	aniadirFilaFichero(fileTable, numRow);

	// Simulo el click del boton file
	var botonFile = document.getElementById('fichero_' + numRow);
	botonFile.click();
}
El problema es que cuando hago esto al hacer el submit de mi formulario me da el error "Access is denied". Lo raro es que si pulso de verdad es botón examininar del file no pasa y lo más raro aún es que si lo hago tal y como yo lo tengo pero en el input file le quito el atributo name también funciona!!!

A alguien se le ocurre porque el atributo name me puede estar dando este problema al simular el click????

Gracias de antemano.

Un saludo.