Validación de los checkbox

Te escribo para saber como validar el siguiente formulario ya que soy incapaz de hacerlo. Más que nada son los checkbox los que me dan problemas lo demás me sale bien y aparte irán metidos en una base de datos cuando se envíen correctamente.
Gracias de antemano y espero tu respuesta
<form name="formulario" action="insertar.php" method="post" class="formulario">
<b>Desea recibir información sobre:*</b><br/><br/>
  <input type="checkbox" name="informacion"  value="clases particulares"/><b> Clases particulares</b>
<!--esto es el spoiler de clases particulares-->
<script type="text/javascript">
//Ocultar/Mostrar Div's
OCULTO="none";
VISIBLE="block";
  function mostrar1(blo) {
    document.getElementById(blo).style.display=VISIBLE;
    document.getElementById('ver_off1').style.display=VISIBLE;
    document.getElementById('ver_on1').style.display=OCULTO;
    }
  function ocultar1(blo) {
    document.getElementById(blo).style.display=OCULTO;
    document.getElementById('ver_off1').style.display=OCULTO;
    document.getElementById('ver_on1').style.display=VISIBLE;
    }
</script>
<div id="ver_on1"><a href="#" onclick="mostrar1('bloque1')" title="Expandir info">ver opciones</a>
</div>
<div id="ver_off1" style="display: none"><a href="#" onclick="ocultar1('bloque1')" title="Cerrar info">ocultar opciones</a>
</div>
<script type="text/javascript">
//Ocultar/Mostrar Div's
OCULTO="none";
VISIBLE="block";
  function mostrar1(blo) {
    document.getElementById(blo).style.display=VISIBLE;
    document.getElementById('ver_off1').style.display=VISIBLE;
    document.getElementById('ver_on1').style.display=OCULTO;
    }
  function ocultar1(blo) {
    document.getElementById(blo).style.display=OCULTO;
    document.getElementById('ver_off1').style.display=OCULTO;
    document.getElementById('ver_on1').style.display=VISIBLE;
    }
</script>
<div id="ver_off1" style="display: none">
<h1><a href="#" onclick="ocultar1('bloque1')" title="Cerrar info">Contraer</a></h1>
</div>
<div id="bloque1" style="display: none">
<p id="txt">
<br/>
<input type="checkbox" name="opcion" value="Clases Particulares de Secundaria" /> Clases Particulares de Secundaria<br/>
<input type="checkbox" name="opcion" value="Clases Particulares de ESO" /> Clases Particulares de ESO<br/>
<input type="checkbox" name="opcion" value="Clases Particulares de Bachiller" /> Clases Particulares de Bachiller<br/>
<input type="checkbox" name="opcion" value="Clases Particulares de Universidad" /> Clases Particulares de Universidad<br/>
<input type="checkbox" name="opcion" value="Clases Particulares para Adultos" /> Clases Particulares para Adultos<br/>
<input type="checkbox" name="opcion" value="Clases Particulares de Idiomas" /> Clases Particulares de Idiomas<br/>
<input type="checkbox" name="opcion" value="Preaparción de Ex´menes" /> Preaparción de Exámenes<br/>
<input type="checkbox" name="opcion" value="Preaparación de Oposiciones" /> Preaparación de Oposiciones
</p>
</div>
<!--termina clases particulares-->
<br/>
  <input type="checkbox" name="informacion" value="Realizacion de trabajos y proyectos" /><b> Realizacion de trabajos y proyectos</b><br/><br/>
  <input type="checkbox" name="informacion" value="apoyo psicopedagogico" /><b> Apoyo psicopedagógico</b>
<!--esto es el spoiler de APOYO PSICOPEDAGOGICO -->
<script type="text/javascript">
//Ocultar/Mostrar Div's
OCULTO="none";
VISIBLE="block";
  function mostrar2(blo) {
    document.getElementById(blo).style.display=VISIBLE;
    document.getElementById('ver_off2').style.display=VISIBLE;
    document.getElementById('ver_on2').style.display=OCULTO;
    }
  function ocultar2(blo) {
    document.getElementById(blo).style.display=OCULTO;
    document.getElementById('ver_off2').style.display=OCULTO;
    document.getElementById('ver_on2').style.display=VISIBLE;
    }
</script>
<div id="ver_on2"><a href="#" onclick="mostrar2('bloque2')" title="Expandir info">ver opciones</a>
</div>
<div id="ver_off2" style="display: none"><a href="#" onclick="ocultar2('bloque2')" title="Cerrar info">ocultar opciones</a>
</div>
<script type="text/javascript">
//Ocultar/Mostrar Div's
OCULTO="none";
VISIBLE="block";
  function mostrar2(blo) {
    document.getElementById(blo).style.display=VISIBLE;
    document.getElementById('ver_off2').style.display=VISIBLE;
    document.getElementById('ver_on2').style.display=OCULTO;
    }
  function ocultar2(blo) {
    document.getElementById(blo).style.display=OCULTO;
    document.getElementById('ver_off2').style.display=OCULTO;
    document.getElementById('ver_on2').style.display=VISIBLE;
    }
</script>
<div id="ver_off2" style="display: none">
<h1><a href="#" onclick="ocultar2('bloque2')" title="Cerrar info">Contraer</a></h1>
</div>
<div id="bloque2" style="display: none">
<p id="txt">
<br/>
<input type="checkbox" name="opcion" value="Apoyo Psico-Pedagogico infantil" /> Apoyo Psico-Pedagógico infantil<br/>
<input type="checkbox" name="opcion" value="Apoyo Psicologico Juvenil" /> Apoyo Psicológico Juvenil<br/>
<input type="checkbox" name="opcion" value="Apoyo Psicologico Adultos " /> Apoyo Psicológico Adultos <br/>
</p>
</div>
<!--termina APOYO PSICOPEDAGOGICO...

1 respuesta

Respuesta
1
Me tienes que especificar un poco más la clase de validación que quieres hacer en los checkbox. ¿Qué al menos uno esté chequeado? ¿Qué sólo uno esté chequeado?.
Por cierto, si vas a insertar en una base de datos, lo suyo es que el value de los checkbox sea un código, y no la descripción, es decir, algo así:
<input type="checkbox" name="opcion" value="12001" /> Clases Particulares de Secundaria<br/>
A la larga te ayudará bastante. Espero tu aclaración respecto a la validación que quieres hacer.
OK, la validación que quiero hacer es la de elegir una o varias categorías y una o varias opciones según lo que quiera/necesite el usuario pero al menos que seleccione una categoría y una opción
Un Saludo y gracias de antemano
Te paso un código html del que puedes sacar todo lo necesario para validar tus opciones:

<html>
<head>
<script>
function validaGrupoCheckbox(checkboxName, mensaje){
var grupo = document.all[checkboxName];
var algunaseleccionada = false;
if (grupo.length){
for (i=0; grupo; i++){
if (grupo.checked){
algunaseleccionada = true;
break;
}
}
}
else if (grupo){
algunaseleccionada = grupo.checked;
}
if (!algunaseleccionada){
alert(mensaje);
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="opcion" value="Apoyo Psico-Pedagogico infantil" /> Apoyo Psico-Pedagógico infantil<br/> 
<input type="checkbox" name="opcion" value="Apoyo Psicologico Juvenil" /> Apoyo Psicológico Juvenil<br/> 
<input type="checkbox" name="opcion" value="Apoyo Psicologico Adultos " /> Apoyo Psicológico Adultos <br/> 
<br/>
<input type="button" onclick="validaGrupoCheckbox('opcion', 'debe seleccionar al menos una opción')" value="Validar opciones"></input>
</form>
</body>
</html>

Ya me contarás que tal.
Perdona, pero he visto que al pegar el código, el editor de texto se está comiendo parte del script. En el "for" para iterar por las opciones, se ha comido los corchetes y la "i" dentro, de forma que solo aparece grupo, cuando tendría que ser "grupo-abro corchete-i-cierro corchete". No se si me explico... lo mismo pasa en el código que hay dentro del for: donde aparece "grupo.checked", faltan los corchetes y la "i" en medio.
El "else if" está bien como está.
Gracias por tu respuesta y siento la tardanza. Bueno, si he entendido bien tu explicación se me crea un bucle infinito si eso andame un correo con un .rar o como quieras a [email protected] para ver como lo tienes tu.
Espero tu respuesta, un saludo
Ya te envié un correo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas