Ciao,
una cosa di questo genere?
codice:
<script type="text/javascript">
function visualizza(numero) {
for (i=1;i<=10;i++) {
if (i <= numero) {
document.getElementById("_"+i).innerHTML = "<input type='text'/>" ;
} else {
document.getElementById("_"+i).innerHTML = "<input type='hidden'/>";
}
}
}
</script>
<form>
<div>
<select onchange="visualizza(this.value)">
<option value="0">Scegli quanti campi visualizzare</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>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div>
<div id="_1">
<input type="hidden"/>
</div>
<div id="_2">
<input type="hidden"/>
</div>
<div id="_3">
<input type="hidden"/>
</div>
<div id="_4">
<input type="hidden"/>
</div>
<div id="_5">
<input type="hidden"/>
</div>
<div id="_6">
<input type="hidden"/>
</div>
<div id="_7">
<input type="hidden"/>
</div>
<div id="_8">
<input type="hidden"/>
</div>
<div id="_9">
<input type="hidden"/>
</div>
<div id="_10">
<input type="hidden"/>
</div>
</form>
Come vedi la select invia il numero scelto alla funzione visualizza che fa un ciclo inserendo (con innerHTML) all'interno delle 10 <div> il tag di tipo "text" fino al numero ricevuto e poi il tag di tipo "hidden".
Le div possono anche essere inizialmente vuote, così:
codice:
<div id="_1">
</div>
<div id="_2">
</div>
<div id="_3">
</div>
<div id="_4">
</div>
<div id="_5">
</div>
<div id="_6">
</div>
<div id="_7">
</div>
<div id="_8">
</div>
<div id="_9">
</div>
<div id="_10">
</div>
però in questo caso se il form viene inviato senza aver operato nessuna scelta non viene inviato nessun campo mentre nel primo esempio vengono sicuramente sempre inviati i dieci campi.
Se poi vuoi divertirti un po' potresti provare a fare una sola <div> entro cui inserire, sempre con innerHTML, il numero di tag scelto invece di averne sempre dieci, alcuni visibili e altri nascosti.
Dipende tutto dalla gestione che ne farai.
Inizialmente avevo provato ad assegnare direttamente il type dei tag input da javascript ma IE non lo accetta.
Vedi se può andar bene.
Ciao