Lo que puedes hacer es que esos campos que quieras mostrar cuando seleccionan un valor en concreto de la select estén invisibles al principio:
<input type="text" name="campo1" style="visibility:hidden"/>
En el evento onChange de la select puedes llamar a una funcion que controle que valor esta seleccionado para ver si tienes que mostrar los campos ocultos:
<select name="miSelect" onChange="fncMostrarCampos(this)">
<option value="0">Seleccione una opcion</option>
<option value="1">opcion1</option>
<option value="2">opcion2</option>
<option value="3">opcion3</option>
</select>
La funcion a la que se llama cuando cambia el elemento seleccionado en la select es:
Código:
function fncMostrarCampos(select){
if(select.selectedIndex == 2){
//mostramos el campo
document.getElementById("campo1").style.visibility="";
}
else{
var campo = document.getElementById("campo1");
//ocultamos el campo
campo.style.visibility="hidden";
//borramos el valor del campo
campo.value = "";
}
}
En esa funcion he puesto que muestre el campo cuando ha seleccionado el elemento que esta en la tercera posicion de la select (los elementos van de 0 a n), si lo que quieres es hacer una comparacion en funcion del valor tienes que cambiar
if(select.selectedIndex == 2)
por
if(select.value == "el valor que tiene que tener cuando quieres mostrar el campo")