Foros del Web » Programando para Internet » Javascript »

Validar y enviar formulario

Estas en el tema de Validar y enviar formulario en el foro de Javascript en Foros del Web. Hola, necesito validar un formulario que tiene N checkbox por ejemplo, tengo esta línea en mi código: <td> <input type="checkbox" name="campos[]" value="<? echo $cod_prod; ?>"/><span ...
  #1 (permalink)  
Antiguo 29/09/2009, 07:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 23
Antigüedad: 21 años, 5 meses
Puntos: 0
Validar y enviar formulario

Hola, necesito validar un formulario que tiene N checkbox por ejemplo, tengo esta línea en mi código:

<td> <input type="checkbox" name="campos[]" value="<? echo $cod_prod; ?>"/><span style="font-weight: bold;"></span></td>

Que permite mostrar el código de unos productos y marcarlos para hacer una solicitud, lo que necesito es antes de enviar el formulario, validar si a lo menos hay un checkbox marcado, y obviamente que al validar se envíe el formulario sin problemas.

Gracias
  #2 (permalink)  
Antiguo 29/09/2009, 07:38
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Validar y enviar formulario

tienes que obtener la coleccion de checkbox y recorrerlo con un bucle para determinar si al menos uno esta marcado. la coleccion la puedes obtener con document.nombre_form["campos[]"]. y para verificar si existe alguno marcado, lees la propiedad checked de cada elemento de la coleccion. puesto que se trata de un formulario, la verificacion tienes que hacerla en el evento onsubmit de <form>. basicamente asi es el flujo,
Código:
onsubmit="
var boxes = this["campos[]"]; // this hace referencia al formulario por lo que te puedes evitar document.nombre_fomulario;
for(var i = 0; boxes[i]; i++) if(boxes[i].checked)return true;
return false;
"
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.