Hola, a ver si me explico, tengo un formulario con 4 preguntas basicas, pero en la tercera de ellas, dependiendo de la seleccion, puede abrirse otra pregunta.
Para validar las primeras, no hay problema, pero no se como validar la emergente, y como no hay nada mejor que un ejemplo, he aqui comentado.
 
 
<HTML>
 <HEAD>
  <TITLE>H.D. Imagenio </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT=",">
  <META NAME="Description" CONTENT="">
 
<SCRIPT LANGUAGE="JavaScript">
//<!-- funcion que recorre los radius mediante el name + indice para su validacion -->
 
function validar(f)
{
var registros=f.reg.value;
for(var q=1;q<=registros;q++)
 {
 if(!VBR(f,q)) {return false;}
 }
return true;
 }
 
function VBR(f,q)
{
var x=f["test"+q].length;
for(var w=0;w<x;w++)
 {
 if(f["test"+q][w].checked) {return true;}
 }
alert("Por favor, conteste a la cuestion numero "+q);
return false;
}
 
//<!-- Fin de la funcion que recorre los radius mediante el name + indice para su validacion-->
 
 
//<!-- Funcion para ver o no ver el emergente -->
 
 
function quitar(n) {
	document.getElementById(n).style.display='none';
} 
 
function ver(n) {
	document.getElementById(n).style.display='block';
} 
//<!--Fin  Funcion para ver o no ver el emergente -->
</script>
<!-- Fin de los script. -->
 </HEAD>
 
<!-- Cabecera de la pagina -->
 <BODY background="fondo.gif">
 <TABLE WIDTH="100%">
 <TR>
	<TD WIDTH="20%" HEIGHT="100"><A HREF="http://www.movistar.es/" target="new"><IMG SRC="logo.gif" WIDTH="100" HEIGHT="100" BORDER="0" title="" ALIGN="TOP"></A></TD>
	<TD WIDTH="60%" HEIGHT="100" ><CENTER><IMG SRC="hdimage.gif" WIDTH="432" HEIGHT="100" BORDER="0" ALT=""></CENTER></TD>
	<TD WIDTH="20%" HEIGHT="100"><A HREF="http://csd-valencia.telefonica" target="new"><IMG SRC="ctv.gif" WIDTH="100" HEIGHT="80" BORDER="0" title=""="" ALIGN="center"></A></TD>
 </TR>
 </TABLE>
 
<!-- Comienza el formulario -->
<form id="imaform" method="post" onsubmit="return validar(this);" action="">	
 
 
 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">1.- Televisor</LEGEND>
		¿Tenía el cliente un televisor compatible con alta definición?<BR>
		<input type="radio" id="TV" name="test1"  value="Si"> Si    
		<input type="radio" id="TV" name="test1"  value="No"> No<br>
	</FIELDSET>
 
 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">2.- Conexión</LEGEND>
	¿Cómo conectó el descodificador al televisor?<BR>
	<input type="radio" id="CB" name="test2"  value="A través de HDMI"> A través de HDMI    
	<input type="radio" id="CB" name="test2"  value="A través deEuroconector"> A través de Euroconector    
	<input type="radio" id="CB" name="test2"  value="Con ambos cables"> Con ambos cables
	</FIELDSET>
 
 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">3.- Modo de Video</LEGEND>
	¿Qué modo de video quedó seleccionado en el descodificador?<BR>  
	<input type="radio" id="DV" name="test3"  onclick="quitar('hdmi');" value="1080i"> 1080i    
	<input type="radio" id="DV" name="test3"  onclick="quitar('hdmi');" value="720p"> 720p    
	<input type="radio" id="DV" name="test3"  onclick="quitar('hdmi');" value="HDMI+Euroconector"> HDMI+Euroconector
 <input type="radio" id="DV" name="test3"  onclick="ver('hdmi');" value="Euroconector"> Euroconector (este es el problema, al seleccionar este, sale el emergente)	</FIELDSET>
 
 <div id="hdmi" style="display:none">
			<!-- Emergente si selecciona euroconector -->
		      <FIELDSET STYLE="width: 94%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">3.1- HDMI</LEGEND>
		En caso de que lo haya conectado por Euroconector, ¿dejó al cliente el cable HDMI por si lo necesita en adelante?<BR>
		<input type="radio" id="CE" name="1test"  value="Si"> Si    
		<input type="radio" id="CE" name="1test"  value="No"> No    
			<!-- Fin Emergente si selecciona euroconector -->
		</FIELDSET> este seria el que habria que validar, pero solo si se marca euroconector en el anterior.
 </div> 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">4.-Diferencia de Calidad</LEGEND>
	¿Ha percibido el cliente diferencia entre los canales HD y SD mostrandole los caneles 100 y 106?<BR> 
 
	<input type="radio" id="DIF" name="test4"  value="1"> Si    
	<input type="radio" id="DIF" name="test4"  value="2"> No
	</FIELDSET>
  <div>
                        <label for="notas">
                                <span style="color:#c00;">*</span>Observaciones
                        </label><BR>
                        <textarea name="notas" id="notes" rows="3" cols="70" onkeyup="val=this.value; if (val.length > 128) { alert('Lo siento, has sobrepasado el limite de 128 caracteres'); this.value = val.substring(0,128); }  this.form.count.value=128-parseInt(this.value.length); ">Comentarios</textarea>
                </div>
	<!-- Comprobamos los caracteres escritos -->				  
					    <div>
                        <label for="count">Caracteres disponibles:</label>
                                 <input type="text" name="count" id="counter" value="128" size="2" />
                                <?php $text_len = preg_match_all('/./', $str, $dummy); ?>
                       </div>
 
	 <!-- Comprobamos los caracteres escritos -->
	 <!-- Indicamos el numero de registros que debe recorrer el script de validacion de radiobutons -->
		 <input type=hidden name=reg value="4">
	 <!-- Fin de la indicacion del numero de registros que debe recorrer el script de validacion de radiobutons -->
	 <!-- Boton de enviar -->
	<input type="submit" id="mando" name="send" onclick="" value="Enviar »" title="Pulsa una vez para enviar el formulario." ">  
	 <!-- Boton de limpiar formulario -->
	<input type="reset" value="Borrar Formulario" name="Borra" onclick="quitar('hdmi');"> 
	 </FORM>
	<!-- Fin del Formulario -->
</FORM> 
</BODY>
</HTML>
 
 
Espero vuestras propuestas.
 
   Saludos. 
  
 

