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.