Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Validación de checkbox en formulario

Estas en el tema de Validación de checkbox en formulario en el foro de Javascript en Foros del Web. Hola. Estoy configurando un formulario que he descargado de http://www.html-form-guide.com/conta...ttachment.html Funciona perfectamente e incluso he realizado una serie de mejoras y añadidos. El problema viene ...
  #1 (permalink)  
Antiguo 30/04/2016, 11:27
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 6 meses
Puntos: 8
Validación de checkbox en formulario

Hola.

Estoy configurando un formulario que he descargado de

http://www.html-form-guide.com/conta...ttachment.html

Funciona perfectamente e incluso he realizado una serie de mejoras y añadidos.

El problema viene cuando intento introducir un checkbox para el tema de la privacidad. Se puede crear sencillamente y funciona enviado el resultado, pero no estoy siendo capaz de que me funcione el aviso de selección en caso de que el usuario no lo haya hecho.

Es decir, lo rellenas todo y dejas sin seleccionar el checkbox y lo envía igual, sin que aparezca el aviso de que no has seleccionado ("Por favor, acepte política de privacidad").

He añadido esto en el html:

Código:
            <div class="container">
              <label for="privacidad" id="priv">Acepte política de privacidad</label>
              <input type="checkbox" name="privacidad" id="privacidad" value="si"><?php echo $formproc->SafeDisplay('privacidad') ?></input>
              <span id="contactus_privacidad_errorloc" class="error"></span>			  
            </div>
Esto en el js de validación:

Código:
    frmvalidator.addValidation("privacidad","shouldselchk=si","Por favor, acepte política de privacidad");

He leído y releído todos los tutoriales sobre validación de formularios y os diré la verdad, ahora mismo el interés principal ya no es que salga el aviso en caso de no seleccionar el checkbox, sino saber por qué no funciona.

Un saludo.
  #2 (permalink)  
Antiguo 30/04/2016, 12:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validación de checkbox en formulario

Hola:

Para la validación de los checkboxes, debes comprobar el valor lógico checked... si es true es que está marcado.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 30/04/2016, 13:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 6 meses
Puntos: 8
Respuesta: Validación de checkbox en formulario

Sí, tienes razón.

Ahora el código así:b

Código:
            <div class="container">
              <label for="priv" id="privacidad">Acepte política de privacidad (ver)</label>
              <input type="checkbox" name="priv" id="priv" value="<?php echo $formproc->SafeDisplay('priv') ?>" />	  
              <span id="contactus_priv_errorloc" class="error"></span>			  
            </div>
y el comprobador:

Código:
	frmvalidator.addValidation("priv","shouldselchk=true","Por favor acepte política de privacidad");
Funciona.

Pero ahora, no sé por qué razón, hay otro problema. El mensaje del captcha en caso de no ponerlo o ponerlo mal no aparece por culpa del anterior cambio.

Si no lo pones, el cursor se coloca en el input para meter el captcha como indicando que debes rellenarlo, pero sin avisar nada. Y luego si lo metes mal, no ocurre nada al pulsar, el curso sigue en el input del captcha, pero sin aviso.

No entiendo por qué falla ahora el aviso del captcha.

Y acabo de comprobar que es el código a continuación el que lo está estropeando de alguna manera:

Código:
            <div class="container">
              <label for="priv" id="privacidad">Acepte política de privacidad (ver)</label>
              <input type="checkbox" name="priv" id="priv" value="<?php echo $formproc->SafeDisplay('priv') ?>" />	  
              <span id="contactus_priv_errorloc" class="error"></span>			  
            </div>
Si lo elimino del html el aviso del captcha vuelve a funcionar.

El js es así:

Código:
    var frmvalidator  = new Validator("contactus");
    frmvalidator.EnableOnPageErrorDisplay();
    frmvalidator.EnableMsgsTogether();
    frmvalidator.addValidation("name","req","Please provide your name");
	
    frmvalidator.addValidation("email","req","Please provide your email address");
	
    frmvalidator.addValidation("email","email","Please provide a valid email address");

    frmvalidator.addValidation("message","maxlen=2048","The message is too long!(more than 2KB!)");

    frmvalidator.addValidation("adjuntar1","file_extn=jpg;jpeg;gif;png;bmp;doc;docx;pdf;txt","Upload images only. Supported file types are: jpg,gif,png,bmp");

    frmvalidator.addValidation("adjuntar2","file_extn=jpg;jpeg;gif;png;bmp;doc;docx;pdf;txt","Upload images only. Supported file types are: jpg,gif,png,bmp");


	frmvalidator.addValidation("priv","shouldselchk=true","Por favor acepte política de privacidad");  	
	
    frmvalidator.addValidation("scaptcha","req","Please enter the code in the image above");

    document.forms['contactus'].scaptcha.validator
      = new FG_CaptchaValidator(document.forms['contactus'].scaptcha,
                    document.images['scaptcha_img']);

    function SCaptcha_Validate()
    {
        return document.forms['contactus'].scaptcha.validator.validate();
    }

    frmvalidator.setAddnlValidationFunction("SCaptcha_Validate");

    function refresh_captcha_img()
    {
        var img = document.images['scaptcha_img'];
        img.src = img.src.substring(0,img.src.lastIndexOf("?")) + "?rand="+Math.random()*1000;
    }
He probado varias combinaciones sin resultado.
  #4 (permalink)  
Antiguo 30/04/2016, 13:08
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 6 meses
Puntos: 8
Respuesta: Validación de checkbox en formulario

Ya lo he solucionado.

Faltaba esto bajo el el código del captcha en el html

<span id='contactus_scaptcha_errorloc' class='error'></span>

Lo había borrado por error.

Gracias.

Etiquetas: checkbox, formulario, funcion, html, input, js, php
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:27.