Buenas a todos
Tengo una pagina que contiene un formulario con un campo select con valores del 0 al 5. La idea es que, dependiendo del numero que se seleccione, apareceran el mismo numero de campos tipo
file. El codigo es el siguiente:
Código HTML:
<html>
<head>
<title></title>
<script type="text/javascript">
function actualizarCampos(num_campos){
var total_actual = document.getElementById('total_imagenes').value;
if (num_campos > total_actual){
for(i=total_actual+1;i<=num_campos;i++){
document.getElementById('campos_carga_imagenes').innerHTML += '<input type="file" name="fichero'+i+'" size="40" /><br />';
}
document.getElementById('total_imagenes').value = num_campos;
}
}
</script>
</head>
<body>
<form name="camposdinamicos" method="post" action="">
<select name="seleccion_numero_imagenes" onChange="actualizarCampos(this.value)">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br />
<div id="campos_carga_imagenes">
</div>
<input type="hidden" id="total_imagenes" name="total_imagenes" value="0" />
</form>
</body>
</html>
Aparentemente todo es correcto. De hecho funciona si, por ejemplo, seleccionamos el 1, apareciendo un campo tipo file. Si seleccionamos a continuacion el 2, aparece un nuevo campo. El problema viene cuando a continuacion seleccionamos el 4. En vez de aparecer dos nuevos campos, aparece solo 1. Esto ocurre siempre que elegimos una opcion que supone dos o mas campos nuevos, EXCEPTO si dicha opcion es la primera que hacemos (es decir, si nada mas cargar la pagina, seleccionamos una opcion que suponga mas de dos campos, en cuyo caso sí funciona)
Se que es un poco de lio, pero haced las pruebas y vereis.
A ver si alguno de vosotros sabe decirme donde se encuentra el error, porque yo no consigo encontrarlo. Teoricamente lo veo bien, pero algo se me escapa.
Un saludo