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.