Foros del Web » Programando para Internet » Javascript »

Problema con validacion

Estas en el tema de Problema con validacion en el foro de Javascript en Foros del Web. Tengo esto Código HTML: <script type= "text/javascript" > function validar() { if (document.Contacto.terminos.type=='si') { document.Contacto.submit(); }else { alert("Tenes que tildar en terminos y condiciones"); } ...
  #1 (permalink)  
Antiguo 17/05/2006, 10:16
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Problema con validacion

Tengo esto

Código HTML:
<script type="text/javascript">
function validar() {
if (document.Contacto.terminos.type=='si') {
document.Contacto.submit();
}else {
alert("Tenes que tildar en terminos y condiciones");
}
}
</script> 
y en el formulario tengo los siguinetes campos

Código HTML:
<form name="Contacto" action="form_contactenos.php" method="post" onSubmit="validar()">
<input name="terminos" type="checkbox" id="terminos" value="si">
<input name="Submit"  type="submit" class="boton" value="Enviar">
</form> 
El problema es que me aparece el cartel de la alerta pero cuando lo cierro automaticamente se envia el formulario en lugar de volver al form para que el usuariò pueda tildar la opcion.

Que es lo que esta mal?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #2 (permalink)  
Antiguo 17/05/2006, 10:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

A simple vista encontré un par de errores:

La consulta debes hacerla al value del elemento:
if (document.Contacto.terminos.value == 'si') {

Y en una validación, se debe devolver un valor lógico (booleano) true/false
además que en el evento debe especificarse return...
onsubmit="return validar()"

Otro pequeño apunte es que para que sea fácil acomodar tu scriprt a otros formularios, puedes pasarlo como parámetro (validar(this)) y en vez de hacer submit() en la validación devolver true (o nada)

Espero que no sean muchas cosas juntas para que las comprendas...

Con tu permiso voy a hacer los retoques:

Código:
<form name="Contacto" action="form_contactenos.php" method="post" onSubmit="return validar(this)">
<input name="terminos" type="checkbox" id="terminos" value="si">
<input name="Submit"  type="submit" class="boton" value="Enviar">
</form>
Y la función:

function validar() {
enviar = document.Contacto.terminos.value =='si';
if (!enviar)
alert("Tenes que tildar en terminos y condiciones");
return enviar;
}

Lo puse a ojo, pero pruébalo y nos cuentas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 17/05/2006, 19:26
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
no se que es lo que pasa pero sigue funcionando exactamente igual, luego de cerrar el alerta se me sispara el formulario solo
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #4 (permalink)  
Antiguo 18/05/2006, 02:26
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola cmc

Pon el formulario como te indicó caricatos (¡Hola! ) y usa este código:
Código PHP:
function validar() {
if (!
document.Contacto.terminos.checked) {
  
alert("Tenes que tildar en terminos y condiciones");
  return 
false;
}

Saludos,
  #5 (permalink)  
Antiguo 19/05/2006, 04:33
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
algo raro esta pasando porque sigue sin funcionar!!!, pasa directamente sin validar el checkbox
Que puede ser?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #6 (permalink)  
Antiguo 19/05/2006, 04:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por cmc
algo raro esta pasando porque sigue sin funcionar!!!, pasa directamente sin validar el checkbox
Que puede ser?
Hola:

¿Puedes poner el código que usas?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 19/05/2006, 05:06
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Estoy usando el que me pasaste vos y el que me paso javierB, con ninguno de los dos funciona, con el tuyo sale el cartel de alerta y cuando le doy ok directamente pasa de pagina, y cuando uso el de el pasa sin cartel de alerta
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #8 (permalink)  
Antiguo 19/05/2006, 05:44
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
De acuerdo Solucion

hola bue yo lo hago asi y me anda muy bien (asi te tendrá ke funcionar si o si ejej

Código:
check = contacto.terminos;
  selected = false // Inicialmente en false
  //Recorremos todos los checkbox buscando que haya alguno marcado
  x=0
  while (!selected && (x <check.length)) {
	if (check[x].checked) {
		selected = true;
	}
	x++;
}
if (!selected) {
   alert("Tenes que tildar en terminos y condiciones");
   return false;
}
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #9 (permalink)  
Antiguo 19/05/2006, 08:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Acabo de probar algo que funciona:

Código:
<html>
<head>
<title>1, 2, 3, ¡probando!...</title>
<script>
function validar(f) {
enviar = f.terminos.checked;
if (!enviar)
alert("Tenes que tildar en terminos y condiciones");
return enviar;
}

</script>
</head>
<body>
<form name="Contacto" action="form_contactenos.php" method="post" onSubmit="return validar(this)">
<input name="terminos" type="checkbox" id="terminos" value="si">
<input name="Submit"  type="submit" class="boton" value="Enviar">
</form>
</body>
</html>
Hay muy poca diferencia entre lo que te puse o el arreglillo de JavierB... y también se asemeja al código de aldo1982 (aunque hay un bucle que no creo que venga al caso)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 20/05/2006, 05:43
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Ahora si!!!!!!!, sos un genio,

gracias
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
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 07:02.