JavaScript - no muestra ALERT

 
Vista:
sin imagen de perfil

no muestra ALERT

Publicado por Eduardo (5 intervenciones) el 24/05/2020 21:22:41
Saludos expertos,

Tengo este código para mostrar los términos y condiciones del uso de la pagina:

Sección javascript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<script type="text/javascript">
var checkobj
function agreesubmit(el){
    checkobj=el
    if (document.all||document.getElementById){
        for (i=0;i<checkobj.form.length;i++){
           var tempobj=checkobj.form.elements[i]
           if(tempobj.type.toLowerCase()=="submit")
              tempobj.disabled=!checkobj.checked
        }
    }
}
function defaultagree(el){
    if (!document.all&&!document.getElementById){
        if (window.checkobj&&checkobj.checked){
           return true
        }else{
          alert("Por favor, lea y acepte los términos ")  //<-No lo muestra
          return false
        }
    }else{
        alert("Por favor, lea y acepte los términos ")   //<-No lo muestra
        return false
    }
}
</script>

Sección html-form
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<form onsubmit="return defaultagree(this)" name="agreeform" id="agreeform">
  <div class="row-logo">
     <img src="imagen/logo.png" />
  </div>
  <div class="row-titu">
     TERMINOS Y CONDICIONES DE USO
  </div>
  <div class="row-1-fields">
     <textarea rows="30" cols="50" autofocus="autofocus">
1	INFORMACIÓN RELEVANTE
...
2	LICENCIA
...
3	ACCESO
...
4	MARCO COMERCIAL
...
5	USO NO AUTORIZADO
...
6	PROPIEDAD
...
7	POLÍTICA DE REEMBOLSO Y GARANTÍA
...
8	COMPROBACIÓN ANTIFRAUDE
...
9	PRIVACIDAD
     </textarea>
  </div>
  <div class="row-cent">
     <input type="checkbox" onclick="agreesubmit(this)" name="agreecheck">Acepto los términos y condiciones
  </div>
  <div class="row-cent">
     <a href="condiciones_acepta.php">
     <input type="submit" disabled="disabled" value="ENVIAR">
     </a>
  </div>
</form>

El problema que tengo es que cuando doy click en el botón "ENVIAR" sin haber hecho click en el CHECKBOX "Acepto los términos y condiciones" NO me muestra el mensaje "Por favor, lea y acepte los términos "

Agradeceré su valiosa ayuda.

Reciban mis cordiales saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

no muestra ALERT

Publicado por joel (895 intervenciones) el 25/05/2020 07:41:11
Hola Eduardo, yo he copiado en una pagina tu código HTML y debajo tu código JavaScript y funciona... aunque no muy bien!!

El botón de submit no esta habilitado si no esta el check marcado, por lo que no puedes pulsarlo!!!
El mensaje "Por favor, lea y acepte los términos" aparece una vez has marcado el check y pulsado el botón... eso lo tienes mal.

Tienes un <a href... con el botón dentro... eso también esta mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 59
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

no muestra ALERT

Publicado por luis (22 intervenciones) el 27/05/2020 04:11:21
En general veo el código muy complicado, pero el problema es que al ejecutar la función agreesubmit(el) no pones ninguna condición.

Sí, es cierto que hay una función posterior pero dado que javascript lee en modo secuencial de arriba a abajo, pues le trae al pairo y cursa la petición.

Deberías completar la función agreesubmit(el) con una simple línea condicional, acompañada de un "return" para el caso de que se cumpla la condición.

agreeform.agreecheck.checked==false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function agreesubmit(el){
 
if(agreeform.agreecheck.checked==false){alert('debe aceptar las condiciones');return}
 
 
    checkobj=el
    if (document.all||document.getElementById){
        for (i=0;i<checkobj.form.length;i++){
           var tempobj=checkobj.form.elements[i]
           if(tempobj.type.toLowerCase()=="submit")
              tempobj.disabled=!checkobj.checked
        }
    }
}


De esta forma si el checkbox no está marcado (false) pues salta la alerta y se corta la ejecución de la función.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar