Vuelvo a dar guerra
Vereis hace tiempo hice una pregunta que me contesto perfectamente Caricatos y se curro un pequeño script que cumplia su funcion a la perfeccion y que acabo en el indice de FAQ y propuesto a desafios JavaScript.
El Script
http://www.forosdelweb.com/2344564-post265.html Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>
http://www.caricatos.net/probador
</title>
<script>
function tag(id) {return document.getElementById(id)};
var actual = total = 0;
var maximo = 5;
function listar(f) {
if (actual == total) {
actual = ++total;
nuevo = document.createElement("div");
nuevo.onclick = function() {
tag("file_" + actual).style.display = "none";
tag("elemento_" + actual).style.backgroundColor = "white";
actual = this.id.substr(9);
tag("file_" + actual).style.display = "inline";
tag("elemento_" + actual).style.backgroundColor = "#eeeeee";
}
nuevo.id = "elemento_" + (actual - 1);
tag("listado").appendChild(nuevo);
nuevo.appendChild(document.createTextNode(f.value));
nuevo.style.cursor = "pointer";
if (total < maximo) {
nuevof = f.cloneNode(true);
f.style.display = "none";
nuevof['value'] = "";
nuevof.id = "file_" + actual;
f.parentNode.insertBefore(nuevof, f.nextSibling);
}
else {
tag("oculto").style.display = "none";
actual = 4;
tag("elemento_" + actual).style.backgroundColor = "#eeeeee";
}
}
else {
elem = tag("elemento_" + actual);
elem.replaceChild(document.createTextNode(f.value), elem.firstChild);
//tag("elemento_" + actual).innerHTML = f.value;
}
}
</script>
</head>
<body>
<form action="javascript: alert('Ok')" >
<input type="file" onchange="listar(this)" name="userfile[]" id="file_0" size="50" />
<button type="submit"> enviar </button>
</form>
<div id="listado" style="position: relative; background-color: white">
<div id="oculto" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: transparent">
</div>
</div>
</body>
</html>
El problema viene en que el script tiene un error que muestra IE 6 y IE 7 al hacer click sobre el texto que nombra cualquier de los archivos seleccionados que aparece dentro del div, siempre y cuando no se hallan seleccionado el limite de archivos maximo.
Desaparece el input de seleccion de archivos.
Error que muestra IE6 y IE7
--------------------------------------------
Linea: 17
Caracter: 4
Error: Se requiere un objeto.
--------------------------------------------
Bueno el caso me gustaria recuperar el post pues tengo mucho interes en el y ver si alguien dado que no tengo ni idea de JavaScript puede corregir el error que presenta.
... Y ya puestos a pedir si puede hacer que aparezca un texto o boton al lado de los archivos seleccionados dentro del div para quitar un archivo seleccionado seria perfecto. Vamos una copia del sistema de seleccion de archivos de GMAIL de Google.
Un saludo a todos y gracias de antemano.