JavaScript - Validación Especial de Varios Checkbox!!!

 
Vista:

Validación Especial de Varios Checkbox!!!

Publicado por Lynda Acosta (6 intervenciones) el 26/12/2006 16:09:38
Saludos,

Yo tengo el siguiente problema, tengo una pagina web con varios checkbox con diferentes nombres, ejemplo DAT[1], DAT[2], DAT[3], etc., el numero es una variable en php $i, solo que ya en la ejecucion se lee asi, esto con el fin de que cuando submite el formulario, con un foreach, yo tenga las variables de cada checkbox cliqueado, el problema es que antes de submitar el formulario, quiero que se valide que por lo menos un checkbox este activo, pero la función en javascript no me funciona, ya que para saber si alguno de los checkbox esta activo tengo que ponerlo en un for, asi:

for ( i = 0; i < documentos; i++)
{
checkactual = document.f1.DAT[i].checked;

if(checkactual)
{
checkboxes++;
}
}

Si ven estoy poniendo DAT[i], pero esto en ejecución es como tener DAT1, DAT2, DAT, etc., y he probado poniendo DAT[[i]], para ver si me da lo que necesito DAT[1], DAT[2], DAT[3], etc., pero por gusto, tambien intente con esto DAT\[[i]\], DAT\[[i]\], DAT\[[i]\], para que idwentifique a los primeros parebntesis como simple texto, pero igual no funciona, que puedo hacer, les agradecere mucho su ayuda en el caso.

Hasta Pronto!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Validación Especial de Varios Checkbox!!!

Publicado por Gonzalo (107 intervenciones) el 26/12/2006 18:23:43
¿Podrías poner el trozo de la página tal como sale generado, olvidándonos de la parte de PHP? O por lo menos el código de la página PHP.

Es que no queda demasiado claro con la explicación que has puesto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validación Especial de Varios Checkbox!!!

Publicado por Lynda Acosta (6 intervenciones) el 26/12/2006 23:59:31
Asi es el codigo de javascript;

<script>
function comprobar()
{
if(confirm("¿Desea continuar con la opción elegida?"))
{
documentos = <?=$num_rows2?>;

for ( i = 0; i < documentos; i++)
{
checkactual = document.f1.DAT[i].checked;

if(checkactual)
{
checkboxes++;
}
}

if(checkboxes != 0)
{
document.f1.submit();
}
else
{
alert("¡¡¡Elija al menos un documento para guardar!!!");
}
}
}
</script>

Y esta es parte de lo que les digo de html:

<tr> <td height="30"><div align="center">
<input type="checkbox" name="DAT['.$row2["dcodigo"].']" value="1">
</div></td>
<td height="30"><div align="center" class="Estilo2">'.$row2["ddescri"].'</div></td>
<td height="30"><div align="center"><textarea name="dcoment" cols="30" rows="1" id="dcoment">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validación Especial de Varios Checkbox!!!

Publicado por Gonzalo (107 intervenciones) el 27/12/2006 13:13:33
Ya veo el problema.

El problema es que esto:
document.f1.DAT[i]
y esto:
<input type="checkbox" name="DAT['.$row2["dcodigo"].']" value="1">

No sé exactamente qué es lo que tienes en $row2["dcodigo"] pero supongamos, en el caso más favorable, que es un número secuencial 0,1,2... Eso daría algo como...
<input type="checkbox" name="DAT[0]">
<input type="checkbox" name="DAT[1]">
<input type="checkbox" name="DAT[2]">

Bien, la expresión document.f1.DAT[i] serviría si los checkbox fueran:
<input type="checkbox" name="DAT">
<input type="checkbox" name="DAT">
<input type="checkbox" name="DAT">
Es decir, un array de checkboxes llamado DAT y tú accedes a ellos con un índice.

Pero tal como lo tienes, no es así. Tendrías que hacer algo como:
document.f1.elements["DAT["+i+"]"]
Porque lo que tienes no es un array, sino elementos independientes que se llaman "DAT[0]", "DAT[1]", "DAT[2]"...

Si quieres puedes solucionarlo así, pero quizá sería mejor solución replantearlo de otra forma. Podrías llamar a todos los checkbox igual y meter el código en el value:
<input type="checkbox" id="DAT" value="'.$row2["dcodigo"].'">
Así serían más manejables y accederías a ellos como tú hacías, con document.f1.DAT[0]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validación Especial de Varios Checkbox!!!

Publicado por Lynda Acosta (1 intervención) el 27/12/2006 15:29:08
Gonzalo, he estado probando con lo que me has ayudado, pero fijate que no me funciona, pero de todas formas, muchas gracias!!!
Otra cosa de la segunda forma que tu me dices que haga, no lo puedo hacer asi porque necesito que las variables esten asi para un foreach que tengo despues en otra pagina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar