Elalquimista:
Tal vez esto te pueda ayudar. Sólo debes ponerle algunas condiciones para el caso de que vulevan a selelcionar una cantidad, ya sea que inhabilites el select, o borres los inputs creados.
Debe funcionar con cualquier navegador con un soporte de DOM.
Código:
<HTML>
<HEAD>
<TITLE></TITLE>
<script>
function agregarCampos(numCampos){
objForm = document.getElementById('formulario1');
for (j=1; j<=numCampos; j++){
salto = document.createElement('br');
etiqueta = document.createElement('label');
txtEtiqueta = document.createTextNode('Campo ' + j + ":");
etiqueta.appendChild(txtEtiqueta);
campoCod = document.createElement('input');
campoCod.setAttribute('name', 'texto' + j);
objForm.appendChild(salto);
objForm.appendChild(etiqueta);
objForm.appendChild(campoCod);
}
}
</script>
</HEAD>
<BODY>
<form name="formulario1" id="formulario1">
<select name="lista1" onchange="agregarCampos(this.selectedIndex)">
<option selected>Seleccione la cantidad</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</form>
</BODY>
</HTML>
Saludos.