Foros del Web » Programando para Internet » PHP »

Formulario no deja validar checkbox

Estas en el tema de Formulario no deja validar checkbox en el foro de PHP en Foros del Web. Hola. Tengo un formulario en php con una serie de campos obligatorios. Por ejemplo: Código: <label for="email" class="rojo">Dirección Email</label> <input type="text" name="email" id="email" value="<?php echo ...
  #1 (permalink)  
Antiguo 18/11/2015, 15:45
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Formulario no deja validar checkbox

Hola.

Tengo un formulario en php con una serie de campos obligatorios.

Por ejemplo:

Código:
          <label for="email" class="rojo">Dirección Email</label>
          <input type="text" name="email" id="email" value="<?php echo $formproc->SafeDisplay("email") ?>" maxlength="50" />
          <span id="contactus_email_errorloc" class="error"></span>
Si creas otro cualquiera y le asignas otro nombre dónde corresponde (como puede ser "Teléfono") funciona perfectamente.

El problema surge con el checkbox para la aceptación de la política de privacidad, puesto que aunque se selecciona no deja enviar el formulario con el mensaje de que hay que aceptar la política, aunque ya está aceptada.

El código:

Código:
          <label for="privacidad" class="rojo">Aceptar política de privicidad (<a href="privacidad" rel="nofollow">ver</a>)</label>
          <input type="checkbox" name="privacidad" id="privacidad" value="<?php echo $formproc->SafeDisplay("privacidad") ?>" />
          <span id="contactus_privacidad_errorloc" class="error"></span>
He ido probando soluciones y buscando en los archivos hasta que me doy cuenta de que si sustituyo el tipo de input de "checkbox" a "text" y lo relleno con lo que sea (una letra basta) sí me deja enviar el formulario.

No funciona con
Código:
<input type="checkbox"
¿Se os ocurre el por qué? ¿Me podéis orientar hacia dónde mirar.

Gracias.
  #2 (permalink)  
Antiguo 18/11/2015, 16:31
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Formulario no deja validar checkbox

prueba de esta manera:

Código Javascript:
Ver original
  1. function envia(){
  2.     /*Verificamos si esta chequeada la aceptacion*/
  3.     if(document.getElementById('acepto').checked){
  4. /*Si es asi enviamos el formulario*/
  5.         document.formulario.submit()
  6.     }else{
  7.         /*De no ser asi, emitimos la alerta*/
  8.         document.getElementById('alerta').style.display = 'Block';
  9.     }
  10. }
Código HTML:
Ver original
  1. <form name="formulario" action="mipagina.php" method="get">
  2. <input type="checkbox" name="prueba" id="acepto" value="acepto"/>Acepto<br><br>
  3. </form>
  4. <button onClick="envia()">Enviar</button>
  5. <div id="alerta" style="display:none">Esta es una alerta de envio</div>

esta es solo una muestra, adaptala a tu codigo, aqui una muestra: http://jsfiddle.net/0j7g3xdz/1/
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 19/11/2015, 15:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Formulario no deja validar checkbox

No es tan sencillo.

El formulario en cuestión es el que puedes ver aquí:

http://www.html-form-guide.com/files...ontactform.php

Que proviene de aquí: http://www.html-form-guide.com/conta...ttachment.html

Como se puede ver al final del formulario, tiene un javascript inserto con en el que yo he colocado:

frmvalidator.addValidation("privacidad","req","Por favor aceptar política de privacidad");

Luego hay una carpeta "include" con diversos archivos php que supongo controlan en formulario, y entre ellos "fgcontactform.php", que creo que es el principal.

No sé si podéis echarle un vistazo.

Lo que sí creo es que no basta con añadir lo que me indicas.

Un saludo y gracias.
  #4 (permalink)  
Antiguo 19/11/2015, 16:41
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Formulario no deja validar checkbox

la verdad es que si es facil de implementar, porque lo que hago alli es derivar el envio del formulario al js siempre que la politica este chequeada, no hay ninguna diferencia en ello, y claro el boton de envio esta fuera del form y es un button que solo ejecuta el js, si esta chequeado el formulario ara lo que debe hacer que es ser procesado por el archivo php, ni no esta chequeado simplemente no se envia o muestra el mensaje, no tiene nada de dificil hacer eso, incluso con ese formulario que no es para nada distinto al resto. Saludos, prueba y verás
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 21/11/2015, 06:01
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Formulario no deja validar checkbox

Si no hay otra solución, lo tendré que hacer cómo dices, pero lo que no entiendo es por qué no funciona con esto:

frmvalidator.addValidation("privacidad","req","Por favor aceptar política de privacidad");

Como todos los demás elementos requeridos.

Y no sería mejor implementarlo así, según el modelo que ya viene con el formulario.

Gracias.
  #6 (permalink)  
Antiguo 21/11/2015, 08:45
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Formulario no deja validar checkbox

y ya buscaste el resto del codigo a ver como esta realizando esa validacion
Cita:
frmvalidator.addValidation("privacidad","req","Por favor aceptar política de privacidad");
eso por si soplo no esta diciendo nada, tienes que poner el código que valida, pero en tal caso como te dije igual funciona porque no se va a enviar hasta que clickeen la política
__________________
[email protected]
HITCEL

Etiquetas: checkbox, formulario
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 19:12.