Foros del Web » Programando para Internet » Javascript »

Duda sobre formularios

Estas en el tema de Duda sobre formularios en el foro de Javascript en Foros del Web. Hola; tengo un formulario normal, que tiene una casilla checkbox, y quiero que sólo se pueda enviar el formulario cuando esa casilla esté activada. Si ...
  #1 (permalink)  
Antiguo 11/04/2006, 02:43
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Pregunta Duda sobre formularios

Hola;

tengo un formulario normal, que tiene una casilla checkbox, y quiero que sólo se pueda enviar el formulario cuando esa casilla esté activada. Si no está marcada, que no deje pulsar en el botón de Enviar.

Cómo puedo hacerlo? Supongo que será con un IF, pero no sé como ponerlo...

Gracias!
__________________
La posada del Pixel | Wanapix
  #2 (permalink)  
Antiguo 11/04/2006, 03:31
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
con javascript, el boton de enviar tiene q ser tipo button:

<form name='formulario' action=''>
....
<input type='checkbox' name='chk' >
<input type='button' name='CmdEnviar' onclick=javascript:validar()>
</form>

y en javascript pones lo sguete:

function validar()
{
if(formulario.chk.checked=='true')
{formulario.action="ejecutar_pagina.php";
formulario.submit();}
else
alert("seleccione el check");

}
  #3 (permalink)  
Antiguo 11/04/2006, 05:15
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Pues es que si pongo type="button" en el boton de Enviar, no hace nada ese boton. Solo funciona si pongo que sea de tipo Submit
__________________
La posada del Pixel | Wanapix
  #4 (permalink)  
Antiguo 11/04/2006, 05:29
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Os pongo mi código para que lo veáis:

Tengo esto en la parte en javascript:
Código:
function checkFields() {
missinginfo = "";
if (document.contacte.empresa.value == "") {
missinginfo += "\n     -  Empresa o colectivo";
}
if (document.contacte.persona_contacto.value == "") {
missinginfo += "\n     -  Persona de contacto";
}
if (document.contacte.telefono.value == "") {
missinginfo += "\n     -  Teléfono";
}
if ((document.contacte.email.value == "") || 
(document.contacte.email.value.indexOf('@') == -1) || 
(document.contacte.email.value.indexOf('.') == -1)) {
missinginfo += "\n     -  Dirección Email";
}

if (missinginfo != "") {
missinginfo ="_____________________________\n" +
"Los datos no han sido introducidos o son erroneos en:\n" +
missinginfo + "\n_____________________________" +
"\nPor favor, vuelva a completarlos y envíelos de nuevo!";
alert(missinginfo);
return false;
}
else return true;
}
Y luego el formulario es este:
Código:
<form  name="contacte" onSubmit="return checkFields();" METHOD="post" action="correo_2.php">
<input type="hidden" name="file_c" value="contacto">
<input name="empresa" type="text" size="50">
<input name="persona_contacto" type="text" size="50">
<input name="telefono" type="text" size="50">
<input name="fax" type="text" size="50">
<input name="email" type="text" size="50">
<strong>Sí</strong><input class="check" name="info" type="checkbox" checked> Deseo recibir más información
<input name="Submit" value="Enviar" class="mod_button" type="submit"></div>
</form>
__________________
La posada del Pixel | Wanapix
  #5 (permalink)  
Antiguo 11/04/2006, 07:25
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:

Puse la respuesta en el mismo mensaje que pusiste en otro foro (web general)... revisa mi mensaje... y fíjate que tiene que ver con el sistema de validación que tienes...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 19/04/2006, 05:22
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Cita:
Iniciado por caricatos
Hola:

Puse la respuesta en el mismo mensaje que pusiste en otro foro (web general)... revisa mi mensaje... y fíjate que tiene que ver con el sistema de validación que tienes...

Saludos
Muy bien, con eso me ha funcionado, y ahora si no está chekeado el botón que quiero, no deja Enviar el formulario.

Pero aún querría algo más: que aparte de que no deje Enviar, saque un mensaje diciendo que es necesario chekear para poder mandar el formulario. Es posible eso?

Gracias ;)
__________________
La posada del Pixel | Wanapix
  #7 (permalink)  
Antiguo 19/04/2006, 05:50
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:

Es algo así:

<form onsubmit="if (!elemento.checked) alert('hau que habilitar el elemento'); return (elemento.checked)"... >

No recuerdo el ejemplo, pero elemento debe ser el name del checkbox.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 19/04/2006, 05:57
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Ummm no me funciona, ni cambiando el nombre del checkbox... está bien toda la sintaxis?
__________________
La posada del Pixel | Wanapix
  #9 (permalink)  
Antiguo 19/04/2006, 07:25
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:

Pues el código es correcto (me parece que no hay errores)...
Muéstranos lo que tienes...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 19/04/2006, 08:20
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Pues ahora he vuelto a probarlo sin cambiar nada y sí que funciona... misterios de la informática.

Muchas gracias caricatos, me has solucionado todo

:)
__________________
La posada del Pixel | Wanapix
  #11 (permalink)  
Antiguo 19/04/2006, 09:48
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Vaya, espera que aún no he terminado...

Ahora me piden que haya dos checkbox, los dos obligatorios de marcar para poder mandar el formulario. He puesto un nombre diferente a cada uno, ahora lo que no sé es cómo modificar el IF que hay en el onsubmit para que compruebe si las dos casillas están marcadas...
__________________
La posada del Pixel | Wanapix
  #12 (permalink)  
Antiguo 19/04/2006, 10:27
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:

<form onsubmit="var los2 = (elemento1.checked && elemento2.checked); if (!los2) alert('hay que habilitar los elementos 1 y 2'); return los2;"... >

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 20/04/2006, 02:00
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 19 años, 7 meses
Puntos: 10
Al final logré arreglarlo yo mismo gracias a mis escasos conocimientos de programación, lo que hice fue:

<... onsubmit="if (!acepto_politica_privacidad.checked | !consentimiento.checked) alert('Debe marcar las dos últimas casillas'); return (acepto_politica_privacidad.checked && consentimiento.checked)" ...>

Lo dicho, gracias por todo.
__________________
La posada del Pixel | Wanapix
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 14:13.