Foros del Web » Programando para Internet » Javascript »

Validar checkbox antes de enviar

Estas en el tema de Validar checkbox antes de enviar en el foro de Javascript en Foros del Web. Hola Tengo el tipico formulario con un checkbox en elque hay que aceptar los terminos y condiciones. Tengo el siguietne codigo Código HTML: <script language= ...
  #1 (permalink)  
Antiguo 22/11/2009, 05:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Validar checkbox antes de enviar

Hola

Tengo el tipico formulario con un checkbox en elque hay que aceptar los terminos y condiciones. Tengo el siguietne codigo
Código HTML:
<script language="JavaScript">

function marcado(){
if (document.form.chk.checked) {
document.form.submit(); 
     }
	 else{
	 alert("Debes aceptar los términos y condiciones");
	
       return 0; 
	 }

}
</script>
<form method="post" action="enviar.php" name="form">
<input type="checkbox" name="validar" value="1" />Acepto los terminos 
<input type="submit" value="enviar" onclick="marcado();" />
</form> 

Consigo mediante la siguiente funcion que salga un mensaje tipo alert si no se ha pulsado, pero aun asi, me pasa a la pagina enviar.php. Es decir, me sale el mensaje, pero aun asi lo valida.

¿Como hago para que al pulsar el boton submit solo envie la informacion si el checkbox esta seleccionado?
  #2 (permalink)  
Antiguo 22/11/2009, 05:26
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
Puntos: 1485
Respuesta: Validar checkbox antes de enviar

leete este articulo que parece que ha ayudado a muchos, http://www.caricatos.net/articulos/formularios.php. personalmente no lo he leido detenidamente pero ademas de contestar a tu duda tambien aclarará otros conceptos acerca de los formularios. si te quedan dudas, vuelve a responder. para darte una pista, la razon es el evento. aqui un tema reciente similar a tu caso, http://www.forosdelweb.com/f13/javas...ampoco-752782/
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/11/2009, 06:30
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Validar checkbox antes de enviar

Gracias por la respuesta, pero sigue sin funcionar. Pongo el codigo modificado:
Código HTML:
<script language="javascript">

function marcado(){
if (document.form.checkbox.checked) {
document.form.submit(); 
     }
	 else{
	 alert("Debes aceptar los términos y condiciones");
	  document.form.ternin.focus();
       return 0; 
	 }

}
</script>
<form method="post" action="ingresar.php" name="form" onclick="marcado();">
<input type="checkbox" name="checkbox" id="checkbox" />Enviar
<input type="submit" value="enviar" />
</form> 
y tb he probado cambiando el onclick por onsubmit del form, pero nada :(
  #4 (permalink)  
Antiguo 22/11/2009, 06:33
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
Puntos: 1485
Respuesta: Validar checkbox antes de enviar

Código:
<form method="post" action="ingresar.php" name="form" onclick="marcado();">
lo marcado en rojo es donde tienes el error. si lees el segundo enlace que te puse, obtendra la respuesta. aparte de cambiarlo a onsubmit, tienes que devolver el valor devuelto por la funcion. es decir,
Código:
return marcado()
y para cancelar el envio, la funcion tiene que devolver false, no 0.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 22/11/2009, 06:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Validar checkbox antes de enviar

Muchisimas gracias por toda la ayuda prestada. ME has solucionado el rpoblema perfectamente. Pongo el codigo para quien lo vaya anecesitar:

Código HTML:
<script language="javascript">
function marcado(){
if (document.form.termin.checked) {
document.form.submit(); 
     }
	 else{
	 alert("Debes aceptar los términos y condiciones");
	  document.form.termin.focus();
       return false; 
	 }

}
</script>

<form method="post" action="ingresar.php" name="form" onsubmit="return marcado();">

<input type="checkbox" value="1" name="termin" id="termin" />He leído y acepto los términos de uso
<input type="submit" value="enviar">
</form> 
  #6 (permalink)  
Antiguo 22/11/2009, 07:20
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validar checkbox antes de enviar

Hola

Con permiso zerokilled

Esto te sobra document.form.submit(); ya que estás usando el evento submit

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 06/04/2010, 10:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Validar checkbox antes de enviar

Ahora vuelvo a tener el mismo problema. No me funciona le codigo y no se porque.

Si al principio de la pagina, despues del tag body pongo esto:

Código:
<body>
<form method="post" action="validar.php" name="form" onsubmit="return marcado();">
<input type="checkbox" id="validar" />Estoy de acuerdo
<input type="submit" value="enviar" />
</form>
(aqui el resto de la pagina entra)
</body>
funciona perfectamente, en cambio si hago esto:
Código:
<body>
<form method="post" action="validar.php" name="form" onsubmit="return marcado();">
(aquí el resto de pagina dejando el checkbox al final)
<input type="checkbox" id="validar" />Estoy de acuerdo
<input type="submit" value="enviar" />
</form>
</body>
aSI NO VA NI A TIROS. Porque suele ser debido este fallo?

Gracias
  #8 (permalink)  
Antiguo 06/04/2010, 11:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Validar checkbox antes de enviar

Bueno me autorespondo.

El fallo era simple, tan solo habia emtido en la pagina otro form y claro, no puede ir unod entro del otro. Por eso fallaba.
  #9 (permalink)  
Antiguo 22/02/2012, 19:58
 
Fecha de Ingreso: diciembre-2011
Ubicación: Chile
Mensajes: 36
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Validar checkbox antes de enviar

si usas dreamweaver, utiliza las funciones de Spry :)
  #10 (permalink)  
Antiguo 03/07/2012, 09:16
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Validar checkbox antes de enviar

Gracias por dejarnos el código con la solución. Eso es de gran ayuda para los foreros y demuestra tu buena voluntad y ayuda a los compañeros.
Gracias.
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

SíEste tema le ha gustado a 1 personas




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